告诉我有一个ValueError异常,请注意。困惑为什么我继续收到错误消息。
def readHourlyRate():
try:
rate = float(input('Hourly Rate:$'))
if rate < 20:
print("Must be atleast $20.00/ hour")
except ValueError:
print("\nInvalid Hourly Rate, must be atleast $20.00/hour.")
return rate
答案 0 :(得分:1)
使用此工作示例:
def readHourlyRate():
try:
rate = float(input('Hourly Rate:$'))
if rate < 20:
print("Must be atleast $20.00/ hour")
except ValueError:
print("\nInvalid Hourly Rate, must be atleast $20.00/hour.")
return rate
readHourlyRate()
然后将字符串作为输入,这就是您得到的回溯:
Traceback (most recent call last):
File "C:/[...].py", line 3, in readHourlyRate
rate = float(input('Hourly Rate:$'))
ValueError: could not convert string to float: 'sdfsdf'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:/[...].py", line 10, in <module>
readHourlyRate()
File "C:/[...].py", line 8, in readHourlyRate
return rate
UnboundLocalError: local variable 'rate' referenced before assignment
通过仔细阅读它,我们可以看到在处理由无效输入引发的ValueError
异常期间,由于我们试图返回rate
变量,引发了另一个未处理的异常。
但是,从未声明或分配此变量,因为在我们尝试这样做时引发了ValueError
。
根据您希望程序执行的操作,然后可以在except
块中分配一个默认值,如下所示:
except ValueError:
print("Invalid Hourly Rate, must be atleast $20.00/hour.")
print("Returning default value 20")
return 20
或者只是让错误传播
答案 1 :(得分:0)
尝试一下:
def readHourlyRate():
rate = input('Hourly Rate:$')
try:
if float(rate) < 20:
print("Must be atleast $20.00/ hour")
except Exception as e:
print("\nInvalid Hourly Rate, must be atleast $20.00/hour.")
return rate
readHourlyRate()
答案 2 :(得分:0)
将代码更改为以下内容:-
GaussianBlur(im, tempIm, Size(9, 9), 1, 1, BORDER_REFLECT);
findContours(tempIm, contours, hierarchy, RETR_TREE, CHAIN_APPROX_TC89_KCOS);