关于Python成绩判定代码出现ParseError:第5行输入无效的问题咨询
排查Python成绩等级判定代码的ParseError问题
嘿,我一眼就看出问题所在了——你把所有代码都挤在同一行里,而且完全没有缩进!Python是对缩进和语句换行非常敏感的语言,这种写法会让解释器根本没法正确解析代码块的结构,自然抛出ParseError了。
具体错误原因
- 代码未按语句块拆分换行:
try、except、if这类关键字开启的是独立代码块,必须单独占一行,不能和前置语句挤在同一行。 - 缺失必要缩进:Python依赖缩进区分代码块层级,
try内部的类型转换语句、except中的错误处理代码、各条件分支里的print语句都需要缩进(通常用4个空格),否则解释器无法识别代码归属关系。
修正后的代码
下面是调整好的可运行版本,我已经帮你拆分了行并加上了正确的缩进:
score = raw_input("Enter Score: ") try: s = float(score) except: print "Error" quit() if s >= 0.9: print "A" elif s >= 0.8: print "B" elif s >= 0.7: print "C" elif s >= 0.6: print "D" else: print "F"
额外提示(可选)
如果是在Python 3环境下运行,还需要把raw_input改成input,并且给print加上括号(比如print("Error")),不过从你用raw_input来看,应该是用Python 2,上面的代码直接就能跑。
内容的提问来源于stack exchange,提问作者Deepak Kumar
相关产品推荐
相关产品推荐

