尝试使用 while 循环时出现回溯错误和 "argument of type 'int' is not iterable"

Traceback error and "argument of type 'int' is not iterable" when trying to use while loop

我正在尝试编写我的第一个程序,一个 collat​​z 序列程序。密码是

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 方法,但我故意不在这里使用它来学习)查看所述数字中的最后一位数字,如果它是偶数或奇数,则执行以下两项操作之一。 运行 这给了我两个错误,第一个是 Collat​​z(startsiffra) 的回溯和行检查最后一个数字是否在列表中的 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)

这似乎如您所愿。希望我能帮到你

编辑:您也可以使用这个 if 而不是我放在代码中的那个。这是您在代码中尝试做的事情(不使用 %)

if str(collatz_number)[position] in ('0', '2', '4', '6', '8'):