"x is None"的问题,python 3.x



因此,我正在尝试创建一个计算器,您将您输入控制台,直到按Enter而不输入任何数字为止。

num1 = 0
num2 = 0
    if addec == ("Go"):
        adloop = 1
            print(para1, """ To exit,
press enter with no number
Please input the first number""", para1)
            sleep(1.5)
            num1 = float(input("--> "))
    while adloop == 1:
        try:
            num1 = num1 + num2
            print("Insert Number")
            num2 = float(input("--> "))
        except:
            if num2 is None:
                print("The answer is", num1)
            else:
                print(para1, """  ERROR: Invalid Response.
Please start again""")

错误即使在num2为null时也会出现,该程序会跳过" else"语句,并在重新启动而无需回答答案之前运行错误行。
(代码只是一个小提取物,因此,如果缺少任何东西,它可能在其他地方)

谢谢,

以及 num2永远不会设置为 None,没有代码可以实际退出循环(在成功或失败上)。代码中,代码中还有零件中的元素示例为示例(例如 addecpara1sleep(1.5),多行字符串等)在提出一个可运行的示例时,您应该提出问题:

print("To exit, press enter with no number.")
print("Please input the first number:")
num1 = float(input("--> "))
num2 = 0
while True:
    try:
        num1 = num1 + num2
        num2 = None
        print("Insert Number")
        num2 = float(input("--> "))
    except ValueError:
        if num2 is None:
            print("The answer is", num1)
            break
        else:
            exit("ERROR: Invalid Response.  Please start again")

我们也可以将其内部旋转,因此我们还可以捕获num1的不良值:

print("To exit, press enter with no number.")
print("Please input the first number:")
num2 = 0
try:
    num1 = float(input("--> "))
    while True:
        num1 = num1 + num2
        num2 = None
        print("Insert Number")
        num2 = float(input("--> "))
except ValueError:
    if num2 is None:
        print("The answer is", num1)
    else:
        exit("ERROR: Invalid Response.  Please start again")

用法

% python3 test.py
To exit, press enter with no number.
Please input the first number:
--> goat
ERROR: Invalid Response.  Please start again
%

相关内容

  • 没有找到相关文章

最新更新