我创建了一个程序,其中输出显示为36, 6, 2, 1
。
我要打印[36, 6, 2, 1]
。
这是我当前的代码:
def collatz(n):
print(n, end = ', ')
while (n > 1):
if n % 2 == 0:
n=int(n**0.5)
else:
n=int(n**1.5)
if n == 1:
print(1)
else:
print(n, end = ', ')
我不确定在这一点上要编辑什么,因为我已经尝试了很多打印语句,并且在其他文章中也看到过print(*n, ...)
使用过的地方,但是我得到了错误:
TypeError: print() argument after * must be a sequence, not int.
我明白为什么它不起作用,所以我现在迷路了。
最好的方法是创建一个列表并将其值附加n
到列表中。通过这种方式,你可以利用内建功能的优势,str(list)
它会自动增加[
,并]
在结束时打印。
示例代码可以是
def collatz(n):
templist = [n]
while (n > 1):
if n % 2 == 0:
n=int(n**0.5)
else:
n=int(n**1.5)
if n == 1:
templist.append(1)
else:
templist.append(n)
print(templist)
现在,当您运行时,collatz(36)
您会得到[36, 6, 2, 1]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句