簡體   English   中英

嘗試使用 while 循環時出現回溯錯誤和“'int' 類型的參數不可迭代”

[英]Traceback error and “argument of type 'int' is not iterable” when trying to use while loop

我正在嘗試編寫我的第一個程序,一個 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 錯誤。

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'):

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM