王权富贵出错集:Python脚本开头两行的:#!/usr/bin/env python和# -*- coding: utf-8 -*-的作用

1.#!/usr/bin/env python


是用来说明脚本语言是 python 的
是要用 /usr/bin下面的程序(工具)python,这个解释器,来解释 python 脚本,来运行 python 脚本的。

2、# -*- coding: utf-8 -*-


是用来指定文件编码为 utf-8 的
在此,详细的(主要是翻译)解释一下,为何要加这个编码声明,以及如何添加编码声明:

2.1 使用文件编码声明以前所遇到的问题
Python 2.1 中,想要输入 Unicode 字符,只能用基于 Latin-1 的 "unicode-escape" 的方式输入 -> 对于其他非 Latin-1 的国家和用户,想要
输入 Unicode 字符,就显得很繁琐,不方便。
希望是:
编程人员,根据自己的喜好和需要,以任意编码方式输入字符串,都可以,这样才正常。


2.2 建议选用的方案
所以,才有人给 Python 官方建议,所以才有此PEP 0263。此建议就是:允许在 Python 文件中,通过文件开始处的,放在注释中的,字符串
形式的,声明,声明自己的 python 文件,用何种编码。由此,需要很多地方做相应的改动,尤其是 Python 文件的解析器,可以识别此种文件
编码声明。


2.3 具体如何声明python文件编码?
上面已经说了,是,文件开始处的,放在注释中的,字符串形式的,声明。
那具体如何声明,以什么样的格式去声明呢?
其实就是,你之前就见过的,这种:

# -*- coding: utf-8 -*-

对此格式的详细解释是:
1. 如果没有此文件编码类型的声明,则 python 默认以ASCII编码去处理;如果你没声明编码,但是文件中又包含非ASCII编码的字符的话,
python解析器去解析的 python 文件,自然就会报错了。
2. 必须放在python文件的第一行或第二行
3. 支持的格式,可以有三种:
1. 带等于号的:
# coding=<encoding name>

2. 最常见的,带冒号的(大多数编辑器都可以正确识别的):
#!/usr/bin/env python
# -*- coding: <encoding name> -*-

猜你喜欢

转载自blog.csdn.net/a1103688841/article/details/84312637