我想写我的第一个程序,一个 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(startiffra)的回溯和检查最后一个数字是否在列表中的行的int错误。
input_siffra = input("Input an integer: ")
startsiffra = int(input_siffra)
def Collatz(collatz_number):
position = (len(str(collatz_number)) - 1)
if collatz_number%10 in (0, 2, 4, 6, 8):
return (collatz_number / 2)
else:
return (collatz_number * 3 + 1)
while startsiffra != 1:
print(startsiffra)
startsiffra=Collatz(startsiffra)
这似乎和你希望的一样。希望我帮到了你
EDIT: 你也可以用这个if代替我在代码中放的那个。它是你在你的代码中一直试图做的事情(不使用%)。
if str(collatz_number)[position] in ('0', '2', '4', '6', '8'):