如何让用户只在Python程序中输入整数值

时间:2014-02-26 16:41:29

标签: python python-3.x integer

我有一份我非常困惑的家庭作业。我必须编写一个程序,允许用户输入他们购买的鸡蛋数量。然后程序将告诉他们可以填充多少个盒子(六个鸡蛋)以及剩下多少个鸡蛋。

我需要确保如果用户输入非整数值,将显示错误消息。我无法弄清楚如何做到这一点,任何帮助将不胜感激!这与while循环有关,还是我完全错了?

5 个答案:

答案 0 :(得分:5)

让用户输入他想要的任何内容,并仅在不是整数时发出警告:

try:
    num = int(input("enter number: "))
except ValueError:
    print("you must enter an integer")

这是Pythonic的方法,毕竟它是"Easier to ask forgiveness than permission"

答案 1 :(得分:0)

是的,这可能是一个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'

答案 2 :(得分:0)

[编辑]我的评论和代码仅对python 2.x有效。

与其他答案相反,在询问用户时,你几乎不应该使用'input()',而是'raw_input()'。

'input()'计算从用户那里获得的字符串,就像它是程序的一部分一样。 这不仅是安全问题,而且是不可预测的,几乎可以引发任何异常(比如NameError,如果python会尝试将字母解析为变量名)。

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

答案 3 :(得分:0)

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(。{{} 1}}

答案 4 :(得分:0)

我通常将文本放在外面并将其包装成函数,使其类似于标准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: ")