我有一個我非常困惑的家庭作業任務。我必須編寫一個程序,允許用戶輸入他們購買的雞蛋數量。然後程序會告訴他們可以裝滿多少盒(六個蛋),剩下多少個蛋。如何讓用戶只在Python程序中輸入整數值
我需要確保如果用戶輸入非整數值,將顯示錯誤消息。我無法弄清楚如何做到這一點,任何幫助將不勝感激! while循環或者我完全錯了嗎?
我有一個我非常困惑的家庭作業任務。我必須編寫一個程序,允許用戶輸入他們購買的雞蛋數量。然後程序會告訴他們可以裝滿多少盒(六個蛋),剩下多少個蛋。如何讓用戶只在Python程序中輸入整數值
我需要確保如果用戶輸入非整數值,將顯示錯誤消息。我無法弄清楚如何做到這一點,任何幫助將不勝感激! while循環或者我完全錯了嗎?
讓用戶輸入任何他願意,並警告只有當它是不是一個整數:
try:
num = int(input("enter number: "))
except ValueError:
print("you must enter an integer")
這是Python的方式做到這一點,畢竟這是"Easier to ask forgiveness than permission"。
你也可以在while循環中包裝它,以允許用戶重新輸入一個值直到他們給出一個有效的值。 –
@MichaelBurns這個問題被標記爲Python 3.x ... –
@ÓscarLópez非常感謝你!這已將所有內容整理出來,現在我的程序完美運行。謝謝你的幫助。 – user3356798
是的,這可能是一個while循環,如
while 1:
instr = input('Enter an integer')
try:
val = int(instr)
print 'integer entered', val
break
except ValueError:
print instr, ' is not an integer'
@'Janne Kanla'謝謝修復。這就是在打字時想着下一行(:-) – sabbahillel
謝謝你的幫助! – user3356798
[編輯]我的評論和代碼僅對蟒蛇2.x的
與其他答案相反,在詢問用戶時幾乎從不使用'input()',而是使用'raw_input()'。
'input()'計算它從用戶那裏獲得的字符串,就像它是程序的一部分一樣。 這不僅是安全問題,而且是不可預知的,並且幾乎可以引發任何異常(例如,如果python嘗試將字母解析爲變量名稱,則爲NameError)。
num = None
while num is None:
try:
num = int(raw_input("Enter an integer: "))
except ValueError:
print 'That was not an integer!'
affirmations = ('YES', 'Y')
answer = raw_input("Do you want to continue? (Yes/Y/y):\n")
if answer.strip().upper() in affirmations:
continue
else:
break
print num
使用Python 3(請參閱標籤)有些困難,其中'raw_input'不存在.... –
@JonClements感謝您指出它;) –
@ m.wasowski非常感謝您的幫助! – user3356798
while True:
try:
amount=int(input("how many do you want to buy"))
break
except ValueError:
print("Please Enter An Amount")
continue
else:
break
這使得用戶的一個簡單的方法在Python 3此輸入一個整數,也可以用於確保用戶輸入字符串的所有你需要的做的只是改變int(
.in str(
我通常會把文字放在外面,並像功能一樣包裹它,使其與標準input
相似。也許有人喜歡它:
def int_input(text):
"""Makes sure that that user input is an int"""
while True:
try:
num = int(input(text))
except ValueError:
print("You must enter an integer.")
else:
return num
user_int = int_input("Enter a number: ")
你到目前爲止有什麼? –