需要帮助查找python代码中的错误吗

需要帮助查找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(分数

我正在编写一个程序来提示分数在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

这是我现在拥有的代码:

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