[英]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.