zoukankan      html  css  js  c++  java
  • 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统一调整即可。

  • 相关阅读:
    将已排序的数组乱序
    Roadmap!!
    测试
    最大对称字串
    约瑟夫环问题
    大家好
    MYSQL数据库导入SQL文件出现乱码如何解决
    Hibernate缓存
    Spring备忘四(涵盖Spring2.5)
    Struts2 Hello,Wold
  • 原文地址:https://www.cnblogs.com/lenfoo/p/11251517.html
Copyright © 2011-2022 走看看