说明
《Python 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
当Python解释器遇到无法理解或解析的语法时,就会引发SyntaxError。这可能是由于诸如拼写错误、缺少括号或引号、缩进错误等常见问题导致的。语法错误在代码编写中会经常遇到,是由于代码不符合 Python 解释器的语法要求,无法正常运行。Python 会给出较明确的语法错误点及位置,我们进行分析定位很快就能修复。
如以下代码,字符串少打了半个引号,会抛出SyntaxError
等, 并告知错误内容,并将箭头指向错误发生的位置。
print('hello world!)
File "<ipython-input-5-9ccf034fb7d1>", line 1
print('hello world!)
^
SyntaxError: EOL while scanning string literal
再如以下,是缩进不规范:
for i in range(3):
print(i)
File "<stdin>", line 2
print(i)
^
IndentationError: expected an indented block
SyntaxError 类的介绍如下。
exception SyntaxError(message, details)
当解析器遇到语法错误时引发。 这可以发生在 import 语句,对内置函数 compile(), exec() 或 eval() 的调用,或是读取原始脚本或标准输入(也包括交互模式)的时候。
异常实例的 str()
只返回错误消息。 错误详情为一个元组,其成员也可在单独的属性中分别获取。
对于 f-字符串字段中的错误,消息会带有 "f-string: "
前缀并且其位置是基于替换表达式构建的文本中的位置。 例如,编译 f'Bad {a b} field'
将产生这样的 args 属性: ('f-string: ...', ('', 1, 2, '(a b)n', 1, 5))
。
在 3.10 版本发生变更: 增加了 end_lineno 和 end_offset 属性。
语法错误抛出的类型为 SyntaxError: <错误文案>
,有些会明确在文案中告诉哪些方面错误了,有些则是 SyntaxError: invalid syntax
, 就需要对代码进行具体分析。
如果有多个语法错误,“箭头”指向的第一个错误,解决一个继续尝试运行才能看到下一个。
常见的语法错误及可能的原因如下:
语法错误其实是比较初级的一个错误,在初学时期经常发生。但随着对 Python 的学习深入应该尽量避免,否则解决语法问题会占用我们大量的时间。
熟练掌握 Python 语法规范,编写中认真投入,养成好的编程习惯,使用效率高的编辑器都可以帮助我们减少出错的概率。
比如:
更新时间:2024-04-06 09:38:03 标签:python 语法 错误