需要帮助查找python代码中的错误吗
我正在编写一个程序来提示分数在0.0到1.0之间。如果分数超出范围,则打印错误。如果分数介于0.0和1.0之间,请使用下表打印分数:分数分数分数>=0.9A>=0.8B>=0.7C>=0.6D<0.6F 最后给出一个它应该做什么的例子: 输入分数:0.95,A 输入分数:完美,无效输入 输入分数:10.0,输入无效 输入分数:0.75,C 输入分数:0.5,F 这是我现在拥有的代码:需要帮助查找python代码中的错误吗,python,python-3.7,Python,Python 3.7,我正在编写一个程序来提示分数在0.0到1.0之间。如果分数超出范围,则打印错误。如果分数介于0.0和1.0之间,请使用下表打印分数:分数分数分数>=0.9A>=0.8B>=0.7C>=0.6D=0.0,分数=0.9): 打印(“A”) elif(得分>=0.8): 打印(“B”) elif(得分>=0.7): 打印(“C”) elif(得分>=0.6): 打印(“D”) elif(分数
score = input("Enter Score: ")
try:
score= float(score)
if(score >= 0.0 and score <= 1.0):
if (score>= 0.9):
print("A")
elif (score>= 0.8):
print("B")
elif(score>= 0.7):
print("C")
elif (score>= 0.6):
print("D")
elif (score < 0.6):
print("F")
else:
print("Invalid input")
score=输入(“输入分数:”)
尝试:
分数=浮动(分数)
如果(分数>=0.0,分数=0.9):
打印(“A”)
elif(得分>=0.8):
打印(“B”)
elif(得分>=0.7):
打印(“C”)
elif(得分>=0.6):
打印(“D”)
elif(分数<0.6):
打印(“F”)
其他:
打印(“无效输入”)
我似乎无法让它启动和运行。任何帮助都将不胜感激 绿色鳄梨有一个很好的答案。我会添加一个while循环来重试,直到输入有效
# loop until complete
while True:
score = input("Enter Score: ")
# let's try this
try:
score = float(score)
if score >= 0.0 and score <= 1.0:
if score >= 0.9:
print("A")
elif score >= 0.8:
print("B")
elif score >= 0.7:
print("C")
elif score >= 0.6:
print("D")
elif score < 0.6:
print("F")
# exit the loop on completion
break
# else raise an exception
raise
# if problem with float(score) or exception raised
except:
print("Invalid input")
#循环直到完成
尽管如此:
分数=输入(“输入分数:”)
#让我们试试这个
尝试:
分数=浮动(分数)
如果得分>=0.0且得分=0.9:
打印(“A”)
elif得分>=0.8:
打印(“B”)
elif得分>=0.7:
打印(“C”)
elif得分>=0.6:
打印(“D”)
elif评分<0.6:
打印(“F”)
#完成后退出循环
打破
#否则会引起一个例外
提升
#如果出现浮动(分数)或异常问题
除:
打印(“无效输入”)
在块之后,您需要一个除外的块来处理错误。
这可以用来处理所有错误,而不是在最后的elif
中打印错误。
您可以使用raise
手动引发错误
score = input("Enter Score: ")
try:
score = float(score)
if score >= 0.0 and score <= 1.0:
if 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")
else:
raise
except:
print("Invalid input")
score=输入(“输入分数:”)
尝试:
分数=浮动(分数)
如果得分>=0.0且得分=0.9:
打印(“A”)
elif得分>=0.8:
打印(“B”)
elif得分>=0.7:
打印(“C”)
elif得分>=0.6:
打印(“D”)
其他:
打印(“F”)
其他:
提升
除:
打印(“无效输入”)
您的try
语句可能需要做两件事:验证用户输入是否可以转换为浮点值,以及生成的浮点值是否在0-100范围内。try
语句中不应包含其他内容
如果该值不是浮点值或超出范围,则可以让循环继续获取另一个输入。否则,您可以继续使用单个if
语句将分数映射到字母等级
while True:
score = input("Enter score: ")
try:
score = float(score) # Could raise ValueError
if not (0 <= score <= 1.0):
raise ValueError
except ValueError:
print("invalid input")
else:
break
if (score>= 0.9):
print("A")
elif (score>= 0.8):
print("B")
elif(score>= 0.7):
print("C")
elif (score>= 0.6):
print("D")
else: # Only option left for an in-range value.
print("F")
我将失败的范围检查转换为ValueError
,主要是为了有一条错误消息和一个我们使用break
的位置,而不是一个明确的continue
。有几种方法可以构造它,但共同的特点是,您首先验证分数
是否有一个适合以下等级地图的值。除了你的try
之外的在哪里?是否引发异常?或者它没有像您期望的那样工作?我得到SyntaxError:解析时出现意外的EOF。您必须添加一个except
来完成try/except块。您提交了一个作业和一个代码。你没有问任何问题,也没有说这段代码有什么问题……不过括号里没有什么问题。if
语句只需要一个表达式,表达式可以用括号括起来。啊,出于某种原因,我从来没有意识到,尽管回头看,很明显括号是允许的。谢谢你指出这一点。
while True:
try:
score = float(score)
except ValueError:
print("invalid input")
continue
if 0 <= score <= 1.0:
break
print("invalid input")