简体   繁体   English

在 Try 中的“if”语句中使用“或”,在 Python 中除外

[英]Using “or” in an “if” statement in Try and Except in Python

I want to make the loop continue and catch errors like entering "bob" as an input or integers less than 1 and greater than 4.我想让循环继续并捕获错误,例如输入“bob”作为输入或小于 1 和大于 4 的整数。

salesNum = input("How many sales persons to process? ")
for num in salesNum:
    salesName = input("Enter Salesperson Name: ")
    salesLevel = 0
    while salesLevel == 0:
        try:
            salesLevel = int(input("Enter Salesperson Level: "))
            if salesLevel < 1 or salesLevel > 4:
                print("error, try again.")
                salesLevel = int(input("Enter Salesperson Level: "))
        except ValueError:
            print("error, try again")
            continue
    hoursWorked = float(input("Enter Hours Worked: "))
    salesAmount = float(input("Enter Number of Sales: "))
print("Clear")

It works fine if I make one error, but multiple errors don't get caught and the program moves on to the next questions.如果我犯了一个错误,它会正常工作,但不会发现多个错误,程序会继续处理下一个问题。 I have tried breaking the if statement up, but that doesn't solve the issue.我试过打破 if 语句,但这并不能解决问题。

The error won't be ValueError , so you either change it to TypeError :该错误不会是ValueError ,因此您可以将其更改为TypeError

except TypeError:

Or to any error:或任何错误:

except:
salesNum = input("How many sales persons to process? ")
for num in salesNum:
    salesName = input("Enter Salesperson Name: ")
    salesLevel = 0
    while salesLevel == 0:
        try:
            salesLevel = int(input("Enter Salesperson Level: "))
            if salesLevel < 1 or salesLevel > 4:
                print("error, try again.")
                salesLevel = int(input("Enter Salesperson Level: "))
        except Exception:
            print("error, try again")
            continue
    hoursWorked = float(input("Enter Hours Worked: "))
    salesAmount = float(input("Enter Number of Sales: "))
print("Clear")

try change ValueError to Exception this will catch every abnormality尝试将 ValueError 更改为 Exception 这将捕获每个异常

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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