[英]Python Calculator and understanding input errors:
我在 python 中创建了一个小型计算器,它可以识别输入错误,尽管它只运行一次。 我想知道是否有更好的方法来使用 While 循环或 If-else 语句,而不是一直使用 try-catch。 由于 try-except 只应在特殊情况下使用 -
我想要的是当用户输入不正确的数字时,即字符串。 它出错并再次询问,用户再次输入正确的数字并且它可以工作。 但是使用 while 循环或 If 语句而不是 try-except
下面的程序运行良好,虽然它只运行一次,你能不能让它在它完成后继续循环。 我可以稍后添加其他运算符...
谢谢,
answer = True
while answer:
try:
num1 = int(input ("Enter first number: "))
break
except:
pass
print ("Please try again: ")
operator = input ("")
num2 = int (input ("Enter second number: "))
if (operator == '+'):
print (num1 + num2)
answer = False
1.使用try/except
是正确的。 无效的用户输入是“例外情况”。
您的代码已经一遍又一遍地要求用户输入,直到他们提供有效的输入(对于第一个数字)。 这是对的。 您不需要answer
变量,因为无论如何它都没有被使用。 您可以只使用while True
:
while True:
try:
num1 = int(input ("Enter first number: "))
break
except:
print ("Please try again: ") # You don't need 'pass'
您可以为每个输入执行此操作。 此外,您可以将该代码放在 function (例如read_number()
)中,并为两个数字输入调用它。
2.要让程序在结束后重新启动,请将整个内容放在一个while True
循环中:
while True:
# Your program here
为了使事情更有条理,您可以将计算器代码放在 function 中,然后在while True
循环中调用 function:
def calculator():
while True:
try:
num1 = int(input ("Enter first number: "))
break
except:
print ("Please try again: ")
operator = input ("")
while True:
try:
num2 = int(input ("Enter second number: "))
break
except:
print ("Please try again: ")
if (operator == '+'):
print (num1 + num2)
# main program
while True:
calculator()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.