sum = 0
codeid = input("Please enter your ID code: ")
if len(str(codeid)) == 10:
sum = sum int(str(codeid) [0]) * 10
sum = sum int(str(codeid) [1]) * 9
sum = sum int(str(codeid) [2]) * 8
sum = sum int(str(codeid) [3]) * 7
sum = sum int(str(codeid) [4]) * 6
sum = sum int(str(codeid) [5]) * 5
sum = sum int(str(codeid) [6]) * 4
sum = sum int(str(codeid) [7]) * 3
sum = sum int(str(codeid) [8]) * 2
remainder = sum % 11
if remainder >= 2 and (11 - remainder == int(str(codeid) [9])):
print ("valid ID")
elif remainder < 2 and (remainder == int(str(codeid) [9])):
print ("valid ID")
else :
print ("Invalid ID")
else:
print ("Invalid ID")
所以這是我創建的一個簡單代碼,用于檢測特定型別的 ID 是否有效。例如,由于演算法,數字“0462519449”是有效的,當我在 VSCode 中運行代碼時,輸??出回傳“有效”;但是,當我保存程式并從終端運行它時,我得到輸出“無效 ID”,這是不正確的,因為它必須是有效的。有誰知道問題是什么?
uj5u.com熱心網友回復:
我認為在終端中您使用的是 Python 2。
在 Python 3 中,input回傳一個字串(因此所有str(codeid)呼叫都是不必要的)。
在 Python 2 中,input計算給出的任何文本,因此如果您輸入 0462519449,它將回傳一個 int。具體來說,它將回傳 int 462519449,因為前導零沒有影響。那么你的支票len(str(codeid)) == 10是假的,這就是你得到“無效 ID”的原因。
如果你正在運行的Python 2,你需要使用raw_input的替代input。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/365822.html
標籤:Python 蟒蛇-3.x 猛击 视觉工作室代码 终端
上一篇:PHP:意外的“StringLiteral”。預期的','
下一篇:將檔案的列乘以指數函式
