【发布时间】:2021-06-27 13:42:43
【问题描述】:
def 成绩(分数): 尝试: 如果分数 >= .9: 返回“A” elif 分数 >= .8: 返回'B' elif 分数 >= .7: 返回“C” elif 分数 >= .6: 返回'D' elif 分数
x = 成绩(完美)
打印(x)
【问题讨论】:
def 成绩(分数): 尝试: 如果分数 >= .9: 返回“A” elif 分数 >= .8: 返回'B' elif 分数 >= .7: 返回“C” elif 分数 >= .6: 返回'D' elif 分数
x = 成绩(完美)
打印(x)
【问题讨论】:
错误/异常发生在 x = grades(perfect) 而不是在你的函数等级内,你有你的 try/except 块。编译器不允许将未定义的变量(完美)用作参数。
虽然没有多大意义,但请尝试以下方法:
try:
x = grades(perfect)
except NameError:
print('bad score')
为了使函数等级在 try/catch 方面有意义,您总是将定义的变量作为参数传递,然后将变量转换为浮点数(对于这种特定情况)。如果变量是字符串,那么您可以捕获 ValueError 异常。如果变量为 = None,则捕获 TypeError 异常:
def grades(score):
try:
_score = float(score)
if _score >= .9: return 'A'
elif _score >= .8: return 'B'
elif _score >= .7: return 'C'
elif _score >= .6: return 'D'
elif _score <= .59: return 'F'
else: return 'Bad Score'
except ValueError: print('bad score')
except TypeError: print('bad score')
x = 成绩('完美')
打印(x)
或
完美=无
x = 成绩(完美)
打印(x)
【讨论】: