在这个程序中使用 try 和 except in this python

Use of try and except in this python in this program

你能告诉我为什么在下面的代码中使用try和except吗? 为什么得分=-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')

我们不能使用以下没有 try 和 except 命令的代码吗?

 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')

如果用户输入无法转换为浮点数的内容,程序将异常停止。 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')
例如,如果用户输入 abc

将在此行 float(input('Enter score: ')) 上抛出 ValueError。你的程序会在你打印 Bad score'.

之前停止

存在 try-except 块是因为用户可能输入的内容不是有效的浮点数。例如,"none"。在这种情况下,python 将抛出 ValueError。使用不受限制的 except 是非常糟糕的风格,所以代码应该是

try:
    score = float(inp)
except ValueError:
    score = -1

它被设置为 -1 因为代码的其余部分将负分视为非法输入,所以任何非法的东西都会在不终止程序的情况下得到理解。