文章目录

  • 系列文章目录
  • 1、expected an indented block
  • 2 .'return' outside function# 系列文章目录
  • 3.invalid syntax
  • 4.IndentationError: unindent does not match any outer indentation level
  • Python3.7解决报错:'NoneType' object has no attribute 'decode'的办法
  • 总结



1、expected an indented block

python编程出现:expected an indented block错误。

expected an indented block翻译为:应为缩进块。

python中没有像C语言使用{}来表示从属关系,而是使用缩进表示上下级关系。

导致excepted an indented block这个错误的原因一般有两个:

1, 冒号后面是要写上一定的内容的。

例如:for循环后面不写任何代码,会出现:

python 输入英文冒号提示错误 python代码冒号一直错误_python 输入英文冒号提示错误

添加for循环内容即可。

python 输入英文冒号提示错误 python代码冒号一直错误_缩进_02

2,缩进不规范,少些或多些了一个空格。

例如:

try与for在同一级别。

python 输入英文冒号提示错误 python代码冒号一直错误_python 输入英文冒号提示错误_03

缩进之后就没有报错了。

python 输入英文冒号提示错误 python代码冒号一直错误_python 输入英文冒号提示错误_04

2 .‘return’ outside function# 系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

3.invalid syntax

python 输入英文冒号提示错误 python代码冒号一直错误_缩进_05

python 输入英文冒号提示错误 python代码冒号一直错误_python 输入英文冒号提示错误_06

  1. 符号使用不正确
    例如:只写了半个括号,使用了中文符号等
    像下面的代码中,76行少了一个右括号。
67         ……
 68         else:
 69             header = "HTTP/1.1 200 OK\r\n"
 70             header += "\r\n"
 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统一调整即可。

4.IndentationError: unindent does not match any outer indentation level

1.对于此错误,最常见的原因是,的确没有对齐。但是我根据错误提示的行数,去代码中看了下,没啥问题啊。
都是用TAB键,对齐好了的,没有不对齐的行数啊。
2.以为是前面的注释的内容影响后面的语句的语法了,所以把前面的注释也删除了。
结果还是此语法错误。
3.后来折腾了半天,突然想到了,把当前python脚本的所有字符都显示出来看看有没有啥特殊的字符。

Python3.7解决报错:‘NoneType’ object has no attribute 'decode’的办法


总结

今天的大部分错误大都是由于缩进问题导致的,空格 tab 不可混用!