我正在制作一個PIN檢查系統,我使用了一個while循環來確保PIN碼的長度正好是4位數:pin_number = int(input("Enter PIN: "))
While len(str(abs(pin_number))) != 4:
Print("invalid pin")
pin_number = int(input("Enter PIN: "))代碼本身有效,除非PIN為4位數字,否則系統將無法繼續。但是,如果第一個數字是 ,則不會注冊為正確。意思是,不起作用,但如果在引腳的中間或末端,它確實有效。我該如何克服這個問題,讓python注冊為數字?0035800
2 回答

慕田峪9158850
TA貢獻1794條經驗 獲得超8個贊
對于此問題語句,無需先對 int 進行類型轉換。只需獲取輸入檢查字符串的長度是否為4,并檢查字符串中的所有字符是否都是數字。
pin_number = input("Enter pin:")
while len(pin_number) != 4 or not pin_number.isdigit():
print("invalid pin")
pin_number = input("Enter pin:")
我認為這將解決您的問題

白板的微信
TA貢獻1883條經驗 獲得超3個贊
不要將輸入類型轉換為 int:
您可以執行以下操作:
pin_number = input('Enter PIN: ')
while len(pin_number) != 4 or not pin_number.isnumeric():
print('invalid pin')
pin_number = input('Enter PIN: ')
添加回答
舉報
0/150
提交
取消