使用简单的Python代码收到错误,但不知道为什么。 ActiveCode 提供了另一个错误

问题描述 投票:0回答:1

这是从分数中找出成绩的代码,非常简单:

def grading(grade):
    n = (grade)
    
    if n >= 90:
        return "A"
    else:
        if n >= 80 and n < 90:
            return "B"
        else:
            if n >= 70 and n < 80:
                return "C"
            else:
                if n >= 60 and n < 70:
                    return "D"
                else:
                    return "F"
                 
m = float(input("What is your number grade?"))

print("Mark:", str(grade), "Grade:", grading(m)) 

运行时出现 “SyntaxError: bad input on line 22”

&我正在使用的网站(

interactivepython.org)有一个 activecode 函数,它一步一步地遵循代码,并产生 "IndentationError: unexpected indent (<string>, line 1)"

 的错误
    

python syntax-error
1个回答
0
投票
不适合评论,但这是

if/elif

 结构。

def grading(grade): if grade >= 90: return "A" elif grade >= 80: return "B" elif grade >= 70: return "C" elif grade >= 60: return "D" else: return "F" m = float(input("What is your number grade?")) print("Mark:", str(m), "Grade:", grading(m))

可视化它

决策过程是相同的,后半部分条件(例如,

if grade >= 80 and grade < 90

)是不必要的,因为我们已经通过落在决策树中的这一点来保证
grade < 90
:如果等级大于或等于到 90 时,所有 
elif
 块都不会执行。如果小于 90,则只有 
elif 块中的 one
 会执行,因此无需测试范围的两个边界,只需检查分钟

© www.soinside.com 2019 - 2024. All rights reserved.