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

时间:2016-11-09 18:19:06

标签: python if-statement nested parse-error comparison-operators

我尝试创建一个程序,提示用户输入他们的成绩,然后在一系列嵌套的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).

4 个答案:

答案 0 :(得分:1)

如果你正在使用嵌套的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

答案 1 :(得分:1)

清理代码并修复这些代码。 python中的indention表示代码块。缩进内的所有代码都属于上级父级。

如果示例:

 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): - &gt;缩进代码 其他: - &gt;缩进代码

快乐编码:)

答案 2 :(得分:1)

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

#!/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)

答案 3 :(得分:1)

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

请参阅:

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中,你需要注意缩进。

继续编码!