在运行Python的时候,如果出现上图的错误信息,别担心,这是因为当你使用中文输出或注释时运行脚本的时候,导致出现问题。这是因为python默认的编码文件是ASCII码,但是你的代码中使用中文或者非英语字符,第一种最最简单的方法就是去文件里把中文部分处理掉,如果不想动它,可以参考以下几种方法:
建议在每个源文件的基础上,使用文件顶部的特殊注释声明编码,使python源代码编码既可见又可更改。为了让python知道这个编码声明,对于处理python源代码数据,需要进行一些概念更改。
如果没有给出其他编码提示,python将默认使用ascii作为标准编码。
要定义源代码编码,必须将一个提示,放到文件的第一行或第二行
coding=
1
或者使用下面这两种格式也可以(这种格式支持更多的流行编辑器):
#!/usr/bin/python
-- coding: --
1
2
#!/usr/bin/python
vim: set fileencoding= :
1
2
更准确地说,第一行或第二行必须与以下正则表达式匹配:
1#.?coding[:=][ \t]*([-_.a-zA-Z0-9]+)
1
然后将此表达式的第一组解释为编码名称。如果Python不能识别该编码,则在编译期间会引发错误。在包含编码声明的行上不能有任何python语句。如果第一行与第二行匹配,则忽略第二行。
为了帮助Windows等平台在Unicode文件的开头添加Unicode BOM标记,utf-8签名\xef\xbb\xbf也将被解释为“utf-8”编码(即使没有给出特殊的编码注释)。
如果源文件同时使用utf-8 BOM标记签名和magic编码注释,则只允许对注释进行“utf-8”编码。任何其他编码都会导致错误。
以下是一些示例,用于说明在Python源文件顶部定义源代码编码的不同样式:
(1)使用二进制和Emacs样式的文件编码注释:
#!/usr/bin/python
-- coding: latin-1 --
import os, sys
…
#!/usr/bin/python
-- coding: iso-8859-15 --
import os, sys
…
#!/usr/bin/python
-- coding: ascii --
import os, sys
…
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(2)不带注释,使用纯文本:
This Python file uses the following encoding: utf-8
import os, sys
…
1
2
3
4
(3)文本编辑器可能有不同的定义文件编码的方法,例如:
#!/usr/local/bin/python
coding: latin-1
import os, sys
…
1
2
3
4
(4)如果没有编码注释,python的解析器将采用ASCII文本:
#!/usr/local/bin/python
import os, sys
…
1
2
3
(5)对不起作用的注释进行编码:
A.失踪的“编码前缀::”
#!/usr/local/bin/python
latin-1
import os, sys
…
1
2
3
4
B.编码注释不在第1行或第2行:
#!/usr/local/bin/python
-- coding: latin-1 --
import os, sys
…
1
2
3
4
5
C.不支持的编码:
#!/usr/local/bin/python
-- coding: utf-42 --
import os, sys
…
\t\f ↩︎
当Python脚本中包含非ASCII字符且未声明编码时,会出现SyntaxError。解决方法是在文件顶部添加编码声明,如`# coding=utf-8`,确保源代码与声明的编码一致。不同编辑器和平台可能需要特定格式的编码声明,如`-- coding: latin-1 --`或`vim: set fileencoding=UTF-8`。

6380

被折叠的 条评论
为什么被折叠?



