已解决 SyntaxError: invalid syntax,Python报错原因和解决方案。

「作者简介」:冬奥会网络安全中国代表队,CSDN Top100,就职奇安信多年,以实战工作为基础著作 《网络安全自学教程》,适合基础薄弱的同学系统化的学习网络安全,用最短的时间掌握最核心的技术。

这篇文章带大家解决Python语法错误 SyntaxError: invalid syntax

SyntaxError: invalid syntax

1、错误类型及排查思路

常见的错误:

  • SyntaxError:语法错误。检查拼写错误,是否缺少冒号、括号、分号等。

  • IndentationError:缩进错误。检查代码的缩进格式是否一致,建议使用空格缩进。

  • ImportError:导入模块失败。检查模块名拼写是否正确、模块路径是否正确。

  • NameError:检查引用的变量或函数是不是写错了或者还没定义。

  • TypeError:检查传递的参数类型是否正确,操作的不同类型是否兼容。比如:整数和字符串不能直接相加。

  • ValueError:参数类型正确但参数的值无法被操作。比如将字符串"abc"转换成整数类型。

  • IndexError:索引错误。比如列表只有3个元素,你却访问的索引却是5。

  • AttributeError:对象没有这个属性。检查是否拼写错误、这个版本是否移除或更换了这个属性。

  • KeyError:字典中没有这个键。检查拼写是否有误。

  • FileNotFoundError:检查文件路径是否拼写正确,文件是否被移动或删除。

标准错误:

  • StopIteration:迭代器没有更多的值。比如列表有3个元素,你却迭代5次。
  • ZeroDivisionError:除零无意义,任何数都不要除以零。
  • NotImplementedError:尚未实现的方法
  • UnboundLocalError:访问未初始化的本地变量
  • TabError:Tab和空格混用
  • FloatingPointError:浮点计算错误
  • OverflowError:数值运算超出最大限制
  • AssertionError:断言语句失败
  • GeneratorExit:生成器发生异常来通知退出
  • GeneratorExit:生成器(generator)发生异常来通知退出
  • EOFError:没有内键输入,到达EOF标记
  • IOError:输入/输出操作失败
  • OSError:操作系统错误
  • WindowsError:系统调用失败
  • MemoryError:内存溢出错误(对于python解释器不是致命的)
  • ReferenceError:弱引用(Weak Refence)试图访问已经垃圾回收的对象
  • RuntimeError:一般的运行时错误
  • SystemError:一般的解释器系统错误
  • SystemExit:解释器请求退出
  • KeyboardInterrupt:用户中断执行(通常是输入^C)
  • UnicodeDecodeError:Unicode解码时的错误
  • UnicodeEncodeError:Unicode解码时的错误
  • UnicodeTranslateError:Unicode 转换时的错误

2、问题描述

代码明明写的没啥问题,但一执行就报错 SyntaxError: invalid syntax

报错信息翻译过来就是,语法错误,无效的语法。

3、原因&解决方案。

1)拼写错误,使用了Python不识别的关键字、语句不完整等。比如图中 from写成了form。

2)括号不匹配,比如前文少写了一个括号。

3)缩进错误,python用缩进来区分代码块,检查每个代码块的缩进是不是同一级别的,建议使用空格缩进,不要这里用tab缩进,那里用空格缩进。

4)引号不匹配,比如前文少写了一个引号,或者引号的中英文用混了,或者单双引号用混乱了。

5)未导入模块,比如你想用的函数需要导入其他模块,你以为你导入了,但实际上没有导入,或者模块导入错了。

比如用到 "string.ascii_uppercase[i]: i for i in range(10)",这条语句是为了在range(10)范围内添加字母索引,但是string是属于string模块的,需要在之前 import sting

6)模块冲突,比如你导入了一个模块,想使用这个模块里的函数,但你当前目录下有个同名的"模块",导致python找了你目录下的这个"模块"。

7)python版本不兼容,比如你复制了别人的代码,别人能运行但你啥也没改就运行不了,那就排查版本是不是不一样。

比如python2和python3的代码就是不兼容的,比如python3中 print要加(),python2中print就不用加括号。

python2里的很多函数到了pytyon3里就改名了,或者被遗弃了。把python换成相同的版本就可以了。

8)路径问题,比如路径没写全,路径没有进行转译。

9)忘记在 if, elif, else, for , while, class, def 声明末尾添加 冒号:

或者把 = 当成 == 用了;

或者if else 这类关键词没有对齐。

或者print打印时,字符串没有加引号。

3.1、Linux环境

Linux运行脚本时要在开头指定解释器 #!/usr/bin/env python3,意思是使用python3执行脚本,不指定就会使用系统默认的解释器。

相关推荐
向哆哆2 分钟前
Java代码重构:如何提升项目的可维护性和扩展性?
java·python·重构
逻辑02 分钟前
从认识AI开始-----解密门控循环单元(GRU):对LSTM的再优化
人工智能·gru·lstm
博睿谷IT99_21 分钟前
Oracle OCP认证的技术定位怎么样?
运维·数据库·安全·数据库oracle
MarkHD23 分钟前
JavaScript 性能优化实战研讨
开发语言·javascript·ecmascript
苏苏susuus33 分钟前
机器学习:欠拟合、过拟合、正则化
人工智能·机器学习
爱写代码的小朋友34 分钟前
数字化浪潮下:信息化教学模式与人工智能的协同创新发展研究
人工智能·数字化
geneculture34 分钟前
融智学内涵、数学定义和跨学科应用的四个核心公式
人工智能·数学建模·课程设计·融智学的重要应用·融智学应用场景
key0634 分钟前
数据分类分级的实践与反思:源自数据分析、治理与安全交叉视角的洞察
安全·分类·数据分析
pencek38 分钟前
HackMyVM-First
网络安全
whaosoft-14340 分钟前
51c自动驾驶~合集56
人工智能