【发布时间】:2020-06-14 20:49:41
【问题描述】:
我正在尝试编写我的第一个程序,一个 collatz sequense 程序。代码是
input_siffra = input("Input an integer: ")
startsiffra = int(input_siffra)
def Collatz(collatz_number):
position = (len(str(collatz_number)) - 1)
if position in collatz_number in (0, 2, 4, 6, 8):
return (collatz_number / 2)
else:
return (collatz_number * 3 + 1)
while startsiffra != 1:
print(startsiffra)
Collatz(startsiffra)
我在这里尝试做的是找到一种方法来判断我输入的数字是偶数还是奇数(是的,我知道有 %2 方法,但我故意不在这里使用它来学习)通过查看所述数字中的最后一个数字,然后如果它是偶数或奇数,则执行两件事之一。运行它会给我两个错误,首先是 Collatz(startsiffra) 的回溯,以及检查最后一个数字是否在列表中的行的 int 错误。
【问题讨论】:
-
这行应该是什么意思:
if position in collatz_number in (0, 2, 4, 6, 8):? -
它应该检查数字中的最后一位是否是偶数
-
position in collatz_number in (0, 2, 4, 6, 8)实际上是(position in collatz_number) and (collatz_number in (0, 2, 4, 6, 8))的简写。十进制数的最后一位是除以 10 后的余数,即number % 10