在python中仅将输入限制为整数并显示错误消息

时间:2018-01-19 02:29:42

标签: python error-handling integer int

我这里有多个输入,但我想将输入限制为只有整数,并在用户输入输入以外的字符时显示错误信息。并继续要求用户输入正确的值,然后再转到下一个项目。这是我的代码:

print ("welkom bij de munten teller")

cent= int(input("vul het aantal 1 centjes in: "))
stuiver= int(input("vul het aantal stuivers in: "))
dubbeltje= int(input("vul het aantal dubbeltjes in: "))
kwartje= int(input("vul het aantal kwartjes in: "))
SRD= int(input("vul het aantal 1 SRD's in: "))
dalla= int(input("vul het aantal 2,50's in: "))

totaal = int ()

fin_cent= cent * 0.01
fin_stuiver = stuiver* 0.05
fin_dubbeltje = dubbeltje * 0.10
fin_kwartje = kwartje * 0.25
fin_SRD = SRD*1
fin_dalla = dalla * 2.50

totaal = fin_cent + fin_stuiver + fin_dubbeltje + fin_kwartje + fin_SRD + fin_dalla
print ("Het totaal is: ", totaal)
#print (totaal)

input("Druk op enter om het programma te beindigen;)")

2 个答案:

答案 0 :(得分:1)

您有三个基本选项:

  1. 尝试将输入转换为整数,并让任何引发的错误自然传播。系统会向用户显示ValueError: invalid literal for int() with base 10: <your input>

    value = int(input('...'))
    
  2. 包装可能在try..except块中引发异常的代码。这使您可以捕获错误并提升自己的错误。

    try:
        value = int(input('...'))
    except ValueError:
        raise ValueError('Make sure you input integers')
    
  3. try阻塞在一个循环中,所以它一直在询问,直到它得到正确的输入

    while True:
        try:
            value = int(input('...'))
        except ValueError:
            print('Please enter a valid integer')
            continue
        break
    

答案 1 :(得分:0)

cent= getInt("vul het aantal 1 centjes in: ")
stuiver= getInt("vul het aantal stuivers in: ")

def getInt(msg):
    var = input(msg)
    if not var.isdigit():
        print("Number Only")
        exit()
    return int(var)

你必须首先接受它们作为字符串。然后使用.isdigit()功能检查它们是否为数字。由于您有很多输入,因此创建函数更容易。