繁体   English   中英

Python 计算器和理解输入错误:

[英]Python Calculator and understanding input errors:

我在 python 中创建了一个小型计算器,它可以识别输入错误,尽管它只运行一次。 我想知道是否有更好的方法来使用 While 循环或 If-else 语句,而不是一直使用 try-catch。 由于 try-except 只应在特殊情况下使用 -

  1. 我想要的是当用户输入不正确的数字时,即字符串。 它出错并再次询问,用户再次输入正确的数字并且它可以工作。 但是使用 while 循环或 If 语句而不是 try-except

  2. 下面的程序运行良好,虽然它只运行一次,你能不能让它在它完成后继续循环。 我可以稍后添加其他运算符...

谢谢,

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM