【发布时间】:2017-08-31 21:21:46
【问题描述】:
我目前无法完成“自动化无聊的东西”中的这个挑战:
我的代码是:
def collatz(number):
global seqNum
if (seqNum % 2 == 0):
return seqNum // 2
elif (seqNum % 2 == 1):
return 3 * seqNum + 1
print('What number would you like to use?')
seqNum = input()
number = int(seqNum)
i = number
while i > 1:
collatz(seqNum)
print(number)
我收到了这个错误:
"Traceback (most recent call last):
File "C:/Users/Administrative/AppData/Local/Programs/Python/Python36-32/collatzSeq.py", line 15, in <module>
collatz(seqNum)
File "C:/Users/Administrative/AppData/Local/Programs/Python/Python36-32/collatzSeq.py", line 3, in collatz
if (seqNum % 2 == 0):
TypeError: not all arguments converted during string formatting"
我知道我在编写代码的方式上做错了,但我不明白它到底是什么。非常感谢任何和所有帮助!
我也在使用 python 3。
【问题讨论】:
-
您没有使用您的论点...我认为您想使用数字而不是 seqNum。这不起作用,因为输入返回一个字符串,它不是数字。此外,您实际上并不需要
elif,您可以使用else,因为唯一可能的值是 1。 -
^ 并摆脱那里的全局声明,这没有帮助
标签: python string python-3.x function collatz