如何修复基本输入功能中的语法错误

时间:2019-09-10 19:43:54

标签: python

我正在使用Python学习基础计算机科学;我们的第一个练习问题之一是创建一个基本输入值,告诉您您的字母等级是什么。

我已经编写了一些代码,但是由于语法错误,代码的最后一行没有运行。由于我没有经验,所以我不知道错误在哪里。

grade = float(input("Enter your grade."))
if grade >= 90:
    print("Your letter grade is an A.")

elif grade >= 80:
    print ("Your letter grade is a B.")

elif grade >= 70:
    print ("Your letter grade is a C.")

elif grade >= 60:
    print ("Your letter grade is a D.")

elif grade >= 50:
    print ("Your letter grade is an E.")

else grade:
    print ("You failed :(")

您应该输入任何值,结果应该只是一条消息,告诉您您的字母等级,但我发现的是最后一节的语法错误(其他等级)

感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

else之后删除“成绩”,因此最后两行显示为:

else: 
    print("You failed :(")

答案 1 :(得分:0)

以下更改应该起作用。

else:
    print ("You failed :(")

奖金提示,当在堆栈交换上使用标记/写入来格式化代码时,请使用```进行多行代码格式化。

答案 2 :(得分:0)

if语句至少由两部分组成:要评估的条件,以及在条件为真时要执行的代码块。

if grade >= 90:
    print("Your letter grade is an A.")

您还可以添加一个else子句,该子句提供条件为 not true时要执行的代码块。

if grade >= 90:
    print("Your letter grade is an A.")
else:
    print("Your letter grade is not an A.")

这已经足够了,尽管它会导致类似丑陋的嵌套代码

if grade >= 90:
    print("Your letter grade is an A.")
else:
    if grade >= 80:
        print("Your letter grade is a B.")
    else:
        if grade >= 70:
            print("Your letter grade is a C.")
        else:
            if grade >= 60:
                print("Your letter grade is a D.")
            else:
                print("Your letter grade is an F.")

为避免这种情况,您还可以指定1个或多个elif子句,这些子句将else与紧随其后的if组合在一起。 (例如,考虑将else: if grade >=80压缩为elif grade >= 80:。) 这样可以减少很多不必要的缩进。

if grade >= 90:
    print("Your letter grade is an A.")
elif grade >= 80:
    print("Your letter grade is a B.")
elif grade >= 70:
    print("Your letter grade is a C.")
elif grade >= 60:
    print("Your letter grade is a D.")
else:
    print("Your letter grade is an F.")

因为这是语句的集合,而不是表达式,所以根本不需要else子句;如果没有一个条件成立,您就没有要做任何事情。