我確定這將是一個非常基本的問題,但我正在爲我的計算類製作一個ISBN校驗碼計算器。我當前的代碼是這樣的:在使用for循環時在python中獲取類型錯誤
isbn = []
results = []
print("Please input your ISBN 1 number at a time")
def isbn_input():
isbn.append(int(input("ISBN character 1: ")))
isbn.append(int(input("ISBN character 2: ")))
isbn.append(int(input("ISBN character 3: ")))
isbn.append(int(input("ISBN character 4: ")))
isbn.append(int(input("ISBN character 5: ")))
isbn.append(int(input("ISBN character 6: ")))
isbn.append(int(input("ISBN character 7: ")))
isbn.append(int(input("ISBN character 8: ")))
isbn.append(int(input("ISBN character 9: ")))
isbn.append(int(input("ISBN character 10: ")))
isbn_input()
results.append(isbn[0] * 11)
results.append(isbn[1] * 10)
results.append(isbn[2] * 9)
results.append(isbn[3] * 8)
results.append(isbn[4] * 7)
results.append(isbn[5] * 6)
results.append(isbn[6] * 5)
results.append(isbn[7] * 4)
results.append(isbn[8] * 3)
results.append(isbn[9] * 2)
results = sum(results)
results = results % 11
results = 11 - results
print("Your ISBN is'",
isbn[0],isbn[1],isbn[2],isbn[3],
isbn[4],isbn[5],isbn[6],isbn[7],
isbn[8],isbn[9],results,"'")
我知道這是做它的瘋狂低效的方式,以及你可能哭,甚至看它。
我試圖讓它更有效率的第一件事就是使用for循環。所以,我改變了:
def isbn_input():
isbn.append(int(input("ISBN character 1: ")))
isbn.append(int(input("ISBN character 2: ")))
isbn.append(int(input("ISBN character 3: ")))
isbn.append(int(input("ISBN character 4: ")))
isbn.append(int(input("ISBN character 5: ")))
isbn.append(int(input("ISBN character 6: ")))
isbn.append(int(input("ISBN character 7: ")))
isbn.append(int(input("ISBN character 8: ")))
isbn.append(int(input("ISBN character 9: ")))
isbn.append(int(input("ISBN character 10: ")))
到一個列表,但我還沒有想出如何做到這一點呢。這是我需要幫助的一點(另外,我知道這個功能沒有意義,我們的老師要求我們有一個,但是如果有人能找到更好的方法,那麼這也會很棒)
謝謝很多的幫助。再次,如果你發現任何可以做得更好的東西,那麼請做。 (另外,這是蟒3)
哪裏的類型錯誤?向我們顯示生成錯誤的代碼,並顯示所述錯誤的完整回溯。 – mhlester
@mhlester:這裏:'isbn [0] * 11'。調用'int(isbn [0])'。 – SzieberthAdam
@SzieberthAdam在添加到isbn列表之前,他已經將輸入轉換爲int了。 – shaktimaan