我这里有多个输入,但我想将输入限制为只有整数,并在用户输入输入以外的字符时显示错误信息。并继续要求用户输入正确的值,然后再转到下一个项目。这是我的代码:
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;)")
答案 0 :(得分:1)
您有三个基本选项:
尝试将输入转换为整数,并让任何引发的错误自然传播。系统会向用户显示ValueError: invalid literal for int() with base 10: <your input>
value = int(input('...'))
包装可能在try..except
块中引发异常的代码。这使您可以捕获错误并提升自己的错误。
try:
value = int(input('...'))
except ValueError:
raise ValueError('Make sure you input integers')
将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()
功能检查它们是否为数字。由于您有很多输入,因此创建函数更容易。