Python - 使用嵌套 If-Else 语句打印成绩的程序

Python - Program That Prints Grade Using Nested If-Else Statements

我正在尝试创建一个程序,提示用户输入他们的成绩,然后在一系列嵌套的 If-Else 语句中比较该值 x:

x = int(input("What is your grade?"))
def grade(x):

if x >= 90:
        return "A"
    else:
        if x >= 80:
            return "B"
        else:
            if x >= 70:
                return "C"
            else:
                if x >= 60:
                    return "D"
                else:
                    return "F"

print( "Grade:", grade(x))

当我尝试 运行 这个程序时,我收到一条错误消息:

ParseError: bad input on line 4

有什么问题:

if x >= 90:

?

到目前为止,由于这个错误,我无法显示要求用户输入成绩的对话框。

编辑:修复缩进并使用 Elif

x = int(input("What is your grade?"))
def grade(x):

if x >= 90:
    return "A"

elif:
    x >= 80:
    return "B"
elif:
    x >= 70:
    return "C"
elif:
    x >= 60:
    return "D"
else:
    return "F"

print( "Grade:", grade(x))

仍然给我一个语法错误:

SyntaxError: invalid syntax (<string>, line 7).

如果您使用嵌套的 else-if,我建议您使用 elif

x = int(input("What is your grade?"))
def grade(x):
    if x >= 90:
            return "A"
    elif x >= 80:
        return "B"
    elif x >= 70:
            return "C"
    elif x >= 60:
        return "D"
    else:
        return "F"

print( "Grade:", grade(x))

输入:What is your grade? 10

输出:F

注意缩进块!

如果您不清楚,这里是语法。

if expression1:
   statements
elif expression2:
   statements
elif expression3:
   statements
else:
   statements

清理你的代码并修复那些缩进。 python 中的缩进表示一个代码块。缩进内的所有代码都属于上层父级。

如果示例:

 if(#argument here):
    ->indent #some line of code here
    ->indent #some line of code here

相当于:

if(#argument){
    #code block
    #code block
    #code block
}

因此,要创建一个合适的 if-else:

如果(#argument): ->缩进代码 别的: ->缩进代码

编码愉快:)

我假设这是一项学校作业,所以我会保持简单。

#!/usr/bin/env python3

def grade(x):
    if  x >= 90:
        return 'A'
    elif x>=80:
        return 'B'
    elif x >= 70:
        return 'C'
    elif x >= 60:
        return 'D'
    else:
        return 'F'

try:
    x = int(input("What are your total marks? "))
    print("Grade: {}".format(grade(x)))
except ValueError as e:
    print("You did not enter valid total marks.")
    exit(0)

这是一个缩进问题。第一个 if 进入函数,所以你需要缩进它。第一个 return 可以少缩进。

参见:

x = int(input("What is your grade?"))
def grade(x):

    if x >= 90:
        return "A"
    else:
        if x >= 80:
            return "B"
        else:
            if x >= 70:
                return "C"
            else:
                if x >= 60:
                    return "D"
                else:
                    return "F"

print( "Grade:", grade(x))

在Python中需要注意缩进。

继续编码!