我有一项作业,我很困惑。我必须编写一个程序,允许用户输入他们要购买的鸡蛋数量。然后程序会告诉他们可以装满多少个盒子(六个鸡蛋)以及还剩下多少个鸡蛋。
我需要确保如果用户输入非整数值,则会显示错误消息。我不知道如何做到这一点,任何帮助将不胜感激!这与 while 循环有关还是我完全错了?
让用户输入他想要的任何内容,并且仅在它不是整数时发出警告:
try:
num = int(input("enter number: "))
except ValueError:
print("you must enter an integer")
这是Python式的做法,毕竟它是“请求宽恕比请求许可更容易”。
是的,这可能是一个 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'
[编辑]我的评论和代码仅对 python 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
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(
. 更改为 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: ")