python中出现invalid syntax报错的几种原因分析

 更新时间:2022年02月12日 09:21:22   作者:Lenfoo  
这篇文章主要介绍了python中出现invalid syntax报错的几种原因分析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

出现invalid syntax报错的几种原因

这篇文章旨为刚接触python不久的朋友,提供一点帮助,请在检查代码没有主要问题时再看是否存在以下问题。

一般来说,写完代码运行时,如果代码中有错误,解释器会提示错误信息,按照提示信息,一般很快可以找出错误,进行修改。但也有一些时候错误提示的信息不是那么明确,代码检查了几遍仍找不出问题,就比较头疼了。今天我们来说一个常见的invalid syntax,在写代码的过程中,哪些小细节错误容易导致invalid syntax报错。更多的原因,后续逐渐补充......

1.符号使用不正确

例如:只写了半个括号,使用了中文符号等

像下面的代码中,76行少了一个右括号。

        ……
        else:
            header = "HTTP/1.1 200 OK\r\n"
            header += "\r\n"
            body = "hahahaha"
            response = header + body
            new_socket.send(response.encode("utf-8")
        new_socket.close()
    def run_forever(self):
        while True:
            new_socket, client_addr = self.tcp_server_socket.accept()
            
            p = multiprocessing.Process(target=self.service_client, args=(new_socket,))
            p.start()
            
            new_socket.close()
            ……

运行代码,则会报错:

 File "w01.py", line 78
    new_socket.close()
             ^
SyntaxError: invalid syntax

其实,78行并没有错误,这时我们就在78行附近寻找,看是否有成对的符号(如括号)未成对使用的情况。在76行补全右括号后,代码运行正常。

有些解释器会有自动补全符号的功能。有些则没有,这时对于新手朋友要特别注意,在写成对的符号时(例如括号、引号等)一定要一次把一对符号写完,再在符号中填写内容,避免因这种情况出现bug,后续检查花费大量时间。

2.代码缩进问题

python是一种严格依赖缩进的语言,如果缩进不正确或缩进格式不统一,一般错误信息会明确告诉你,但有时也会出现invalid syntax报错。

所谓缩进不正确,python的缩进是四个空格或一个TAB,如果缩进三个空格,一定报错

所谓缩进格式,即不能空格和TAB混用。如果不清楚是否存在混用,可以使用sublime统一调整即可。

invalid syntax——无效语法

错误代码块

num_1=float(input(“请输入第一个数:”))
num_2=float(input(“请输入第二个数:”))
c=(input(“请选择运算类型:1.+ 2- 3.* 4./ 5.% :”))
if c==+
out=num_1 + num_2
if c==-:
out=num_1 - num_2
if c==*:
out=num_1 * num_2
if c==/:
out=num_1 / num_2
if c==%:
out=num_1 % num_2
print(“运算结果是:”,out)`

出现错误:invalid syntax

在此程序中,把“、+、-、、/等运算符直接用在if条件中造成报错,故字符串类型和数值类型*不一样,应用“+”、“-”符号作为判断条件。

调整后代码

num_1=float(input(“请输入第一个数:”))
num_2=float(input(“请输入第二个数:”))
c=(input(“请选择运算类型:1.+ 2- 3.* 4./ 5.% :”))
if c=="+":
out=num_1 + num_2
if c=="-":
out=num_1 - num_2
if c=="*":
out=num_1 * num_2
if c=="/":
out=num_1 / num_2
if c=="%":
out=num_1 % num_2
print(“运算结果是:”,out)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python中.py文件打包成exe可执行文件详解

    Python中.py文件打包成exe可执行文件详解

    这篇文章主要给大家介绍了在Python中.py文件打包成exe可执行文件的相关资料,文中介绍的非常详细,相信对大家具有一定的参考价值,需要的朋友们下面来一起看看吧。
    2017-03-03
  • Python面向对象程序设计之私有属性及私有方法示例

    Python面向对象程序设计之私有属性及私有方法示例

    这篇文章主要介绍了Python面向对象程序设计之私有属性及私有方法,结合实例形式分析了Python私有属性及私有方法的相关使用方法及操作注意事项,需要的朋友可以参考下
    2019-04-04
  • python中定义结构体的方法

    python中定义结构体的方法

    Python中没有专门定义结构体的方法,但可以使用class标记定义类来代替结构体,其成员可以在构造函数__init__中定义,具体方法如下,特分享下,方便需要的朋友
    2013-03-03
  • 详解通过API管理或定制开发ECS实例

    详解通过API管理或定制开发ECS实例

    在本文里我们给大家整理了关于通过API管理或定制开发ECS的相关实例内容,有需要的朋友们参考学习下。
    2018-09-09
  • Python中的pyecharts库使用总结

    Python中的pyecharts库使用总结

    这篇文章主要介绍了Python中的pyecharts库使用总结,Pyecharts 提供了一个简单而直观的 API 接口,使得使用者无需了解复杂的 JavaScript 语法,即可通过 Python 代码实现高度定制化的图表设计,需要的朋友可以参考下
    2023-12-12
  • python实现小球弹跳效果

    python实现小球弹跳效果

    这篇文章主要为大家详细介绍了python实现小球弹跳效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • Python中用max()方法求最大值的介绍

    Python中用max()方法求最大值的介绍

    这篇文章主要介绍了Python中用max()方法求最大值的介绍,是Python入门中的基础知识,需要的朋友可以参考下
    2015-05-05
  • Python如何实现爬取B站视频

    Python如何实现爬取B站视频

    这篇文章主要介绍了Python如何实现爬取B站视频,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 浅析python常用数据文件处理方法

    浅析python常用数据文件处理方法

    这篇文章主要介绍了python常用数据文件处理方法,虽说python运行速度慢,但其编程速度,第三方包的丰富度是真的高,涉及到文件批处理还是会选择python,感兴趣的朋友跟随小编一起看看吧
    2021-10-10
  • 卷积神经网络的发展及各模型的优缺点及说明

    卷积神经网络的发展及各模型的优缺点及说明

    这篇文章主要介绍了卷积神经网络的发展及各模型的优缺点及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02

最新评论