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


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

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

     67         ……
     68         else:
     69             header = "HTTP/1.1 200 OK
    "
     70             header += "
    "
     71 
     72             body = "hahahaha"
     73 
     74             response = header + body
     75 
     76             new_socket.send(response.encode("utf-8")
     77 
     78         new_socket.close()
     79 
     80     def run_forever(self):
     81         while True:
     82             new_socket, client_addr = self.tcp_server_socket.accept()
     83             
     84             p = multiprocessing.Process(target=self.service_client, args=(new_socket,))
     85             p.start()
     86             
     87             new_socket.close()
     88             ……
    
    

    运行代码,则会报错:

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

    其实,78行并没有错误,这时我们就在78行附近寻找,看是否有成对的符号(如括号)未成对使用的情况。在76行补全右括号后,代码运行正常。
    有些解释器会有自动补全符号的功能。有些则没有,这时对于新手朋友要特别注意,在写成对的符号时(例如括号、引号等)一定要一次把一对符号写完,再在符号中填写内容,避免因这种情况出现bug,后续检查花费大量时间。

    2. 代码缩进问题
    python是一种严格依赖缩进的语言,如果缩进不正确或缩进格式不统一,一般错误信息会明确告诉你,但有时也会出现invalid syntax报错。
    所谓缩进不正确,python的缩进是四个空格或一个TAB,如果缩进三个空格,一定报错
    所谓缩进格式,即不能空格和TAB混用。如果不清楚是否存在混用,可以使用sublime统一调整即可。

  • 相关阅读:
    Oracle删除约束和主键的语句
    Tomcat启动时SecureRandom超级慢的问题
    MySQL innodb引擎下根据.frm和.ibd文件恢复表结构和数据
    ORA-00604: 递归 SQL 级别 1 出现错误 ORA-01653: 表 SYS.AUD$ 无法通过 8192 (在表空间 SYSTEM 中) 扩展
    Linux 使用pwgen命令创建随机密码
    nginx 之 proxy_pass详解
    给nginx生成自签名证书
    常见排序算法(java实现)
    浅析变量的作用域和生存周期的差别
    filter过滤器
  • 原文地址:https://www.cnblogs.com/lenfoo/p/11251517.html
Copyright © 2020-2023  润新知