【发布时间】:2016-03-30 01:21:47
【问题描述】:
我目前正在尝试从一本书中学习 Python,但遇到了一个问题。基本上我应该写一个程序来做一些叫做 Collatz 序列的事情。代码如下:
print("Please enter a number")
number = input()
int(number)
while number > 1:
collatz()
def collatz(number):
if number % 2 == 0:
number = number // 2
print(number)
return number
else:
number = 3 * number + 1
print(number)
return number
所以当我尝试执行上面的代码时,我得到以下输出:
重新启动:C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collatz.py
请输入号码
12
回溯(最近一次通话最后): 文件“C:/Users/Gillian/AppData/Local/Programs/Python/Python35-32/Collatz.py”,第 6 行,在
而数字 > 1:
TypeError:不可排序的类型:str() > int() 块引用
显然,当我的变量应该是整数时,它被读取为字符串。我的问题是——为什么?我认为第 4 行中我将 number 的数据类型更改为 int 的部分应该可以解决这个问题,但它没有。
如果这对我的问题很重要,我正在尝试完成的说明是页面底部的here。
【问题讨论】:
-
您没有将
int(number)的结果分配给任何东西。考虑number = int(number)。