Python百分制转字母等级程序报NameError错误该如何解决?
问题诊断
- 触发
NameError报错的核心原因:你在条件判断中直接使用了grade变量,但代码运行前没有对该变量进行赋值定义,Python无法识别未声明的变量。 - 现有代码还存在隐藏的缩进问题:
if语句前的多余缩进不符合Python语法规范,即便修复变量问题也会触发IndentationError缩进错误。
修复后的完整可运行代码
# 读取用户输入的分数并转为整数类型 grade = int(input("请输入0-100区间的分数:")) letterGrade = "F" # 先校验分数合法性 if 0 <= grade <= 100: if grade >= 90: letterGrade = "A" elif grade >= 80: letterGrade = "B" elif grade >= 70: letterGrade = "C" elif grade >= 60: letterGrade = "D" print(f"对应字母等级为:{letterGrade}") else: print("输入非法,请输入0到100之间的有效分数")
改动说明
- 新增了
grade变量的定义逻辑,通过input()读取用户输入后转为整数类型,确保条件判断时变量可用 - 修正了所有语句的缩进层级,符合Python语法要求
- 新增了分数合法性校验逻辑,避免输入超出0-100区间时输出错误结果
内容的提问来源于stack exchange,提问作者yurrrr
相关产品推荐
相关产品推荐

