您能否告诉我为什么尝试以及以下代码中使用的除外? 为什么得分= -1?我的意思是为什么只有-1
inp = input('Enter score: ')
try:
score = float(inp)
except:
score = -1
if score > 1.0 or score < 0.0:
print ('Bad score')
elif score > 0.9:
print ('A')
elif score > 0.8:
print ('B')
elif score > 0.7:
print ('C')
elif score > 0.6:
print ('D')
else:
print ('F')
我们不能使用以下代码,除了命令之外没有尝试。
score = float(input('Enter score: '))
if score > 1.0 or score < 0.0:
print ('Bad score')
elif score > 0.9:
print ('A')
elif score > 0.8:
print ('B')
elif score > 0.7:
print ('C')
elif score > 0.6:
print ('D')
else:
print ('F')
答案 0 :(得分:4)
如果用户输入了无法转换为浮点数的内容,程序将以异常停止。 try
捕获此内容并使用默认值。
这样可行:
inp = input('Enter score: ')
try:
score = float(inp)
except ValueError:
print('bad score')
您的版本:
score = float(input('Enter score: '))
if score > 1.0 or score < 0.0:
print ('Bad score')
如果用户输入ValueError
,会在此行float(input('Enter score: '))
上抛出abc
。您的程序将在您打印Bad score'
之前停止。
答案 1 :(得分:2)
try-except块存在,因为用户可能输入的内容不是有效的浮点数。例如,“无”。在这种情况下,python将抛出ValueError
。使用不受限制的except
是非常糟糕的样式,因此代码应该已经读取
try:
score = float(inp)
except ValueError:
score = -1
它设置为-1
,因为其余代码将负分数视为非法输入,因此任何非法操作都会在不终止程序的情况下获得分数。