猫史档案馆


【Python作品分享】初一三班 张梦瑶【求助帖】

用户:俊秀的铁奥Rpyk俊秀的铁奥Rpyk查看:0 回复:1 评论:0 创建时间:2019-12-17T16:58:02


【作品展示】

center_image

 

【作品介绍】

今天老师讲的

 

【作品源代码】

def bingbao(n):
    while n !=1:
        if n % 2 == 0:
            n = n // 2
        else:
            n = 3 * n + 1
        arr.append(n)

if 1<2:
    arr = []
    n= int(input("请输入正整数:"))
    bingbao(n)
    print(arr)

    

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
急_开_锁_办_证810864急_开_锁_办_证810864

你在函数中用到了在函数外设置的变量arr,一般这不是好的做法。除非你明白闭包在Python中的通途,否则尽量避开这种写法。

也不知道你想问什么,给你一个示例:

def collatz( n ): #设定函数
	print(n, end=" ") #先输出n本身
	while n > 1: #没有到1就一直循环
		if n % 2 == 0: #如果当前的数是奇数
			n = n // 2
		else: #如果当前的数是偶数
			n = 3 * n + 1
		print(n, end=" ") #就地输出当前的数,如无特殊要求就不必存入列表,那样浪费空间

#主程序从这里开始
n = int( input("打雷啦下雨收衣服啊") )
collatz(n) #调用函数

点赞0


评论