Python 如何将try:和except:包含在异常处理中?
我试图在此程序中包含Python 如何将try:和except:包含在异常处理中?,python,python-2.7,exception,exception-handling,try-catch,Python,Python 2.7,Exception,Exception Handling,Try Catch,我试图在此程序中包含try:和except:,以捕获文本字符串异常,但无法确定如何实现。如何将try:和除外:包含在异常处理中 #!/usr/bin/python2.7 h = float(raw_input('Enter Hours: ')) r = float(raw_input('Enter Rate: ')) if h > 40 : p = h * r + (h - 40) * r * 0.5 else : p = h * r print 'Pay:', p 您
try:
和except:
,以捕获文本字符串异常,但无法确定如何实现。如何将try:
和除外:
包含在异常处理中
#!/usr/bin/python2.7
h = float(raw_input('Enter Hours: '))
r = float(raw_input('Enter Rate: '))
if h > 40 :
p = h * r + (h - 40) * r * 0.5
else :
p = h * r
print 'Pay:', p
您只需要使用一对try-except
def num(s):
try:
return float(s)
except :
return None
h = num(raw_input('Enter Hours: '))
现在您需要请求一个有效的响应。比如说
h = None
p = None
while (h is None):
h = num(raw_input('Enter Hours: '))
while (p is None):
p = num(raw_input('Enter Price: '))
这取决于您希望如何处理其余的处理。如果0是无效条目,有些人可能更愿意返回0,因为0 price或0 hours也将无效,因此测试>0
def num(s):
try:
return float(s)
except :
return 0.0
h = num(raw_input('Enter Hours: '))
h = 0.0
p = 0.0
while (h <= 0.0):
h = num(raw_input('Enter Hours: '))
while (p <= 0.0):
p = num(raw_input('Enter Price: '))
def num(s):
尝试:
返回浮动(s)
除:
返回0.0
h=num(原始输入('输入小时:'))
h=0.0
p=0.0
而(h#!/usr/bin/python2.7)
def calc_pay(h,r):
如果h因为raw_input
是触发错误消息的位置(例如,如果在提示时输入文本字符串)计算函数未包含在try
子句中。返回None
只是将问题推到了别处。@Holloway的要点是,在返回None之后,您需要执行if测试(或一段时间)要准确地处理错误。如果仍要对返回值进行检查,则最好在发生错误的地方进行处理。@Holloway是的,但这样,您就不需要为价格重复try-except对。与None
相比,您应该使用is
。
#!/usr/bin/python2.7
def calc_pay(h, r) :
if h <= 0 or r <= 0 :
return None
elif h > 40 :
return (h * r + (h - 40) * r * 0.5)
else :
return (h * r)
try :
h = float(raw_input('Enter Hours: '))
r = float(raw_input('Enter Rate: '))
p = calc_pay(h, r)
print 'Pay:', p
except :
print "Enter Numeric Data"