本文档描述了Python语言文件头里典型注释的含义。

1. 指定解释器

不管在linux还是在windows下,要运行一个python文件(比如hello.py)的方式一般都是

python ./hello.py

1

然而,有一种方式可以直接运行hello.py文件,那就是直接在python文件开头指定所使用的python解释器。然后就可以直接用

./hello.py

1

运行了(当然得先chmod +x ./hello.py让这个文件有可执行权限)。

“在python文件开头指定解释器”的方式有两种。另外如果你python刚学不久,建议可以先去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,进步更快哦!

1.1. 直接指定解释器路径

#!/usr/bin/python

1

上面这种方式,指定了必须用/usr/bin/python这个解释器来解释本python文件。

当然了,也可以写成

#!/usr/local/python3/bin/python3.4

1

只要那个路径下有python解释器。

1.2. 指定系统环境变量设定的解释器路径

#!/usr/bin/env python

1

而这种方式,指定了使用linux环境变量$PATH里某个路径下名为python的解释器来解释本python文件。

(注意到开头/usr/bin/env是linux里读写环境变量的一个程序)

如果环境变量$PATH的内容是/usr/bin:/usr/local/bin:/usr/local/python3/bin,那么上面的注释就意味着会依序寻找这些路径:

1. /usr/bin/python

2. /usr/local/bin/python

3. /usr/local/python3/bin/python

第一个存在的路径,就会作为python解释器使用。

当然,如果写成这样

#!/usr/bin/env python3

1

那么查找解释器的路径顺序就会变成

1. /usr/bin/python3

2. /usr/local/bin/python3

3. /usr/local/python3/bin/python3

2. 标明本py文件的编码类型

前置知识:文本文件保存在硬盘上时,是需要按照一定编码规则来保存的。比如GBK、UTF-8、UCS2之类。而文本编辑器、阅读器、浏览器打开硬盘上的文本文件时,需要知道这个文本文件的编码规则。

以下是正文——

python文件第二行一般是下面两种之一:

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

1

或者

# coding: utf-8

1

这一行的意思是:告诉python解释器,这个文件是以UTF-8方式编码存储的。其实类似文本文件开头的BOM。

对于全文都是ASCII编码的py文件而言,这行注释一般没用,因为ASCII字符在绝大多数编码存储方式中都是相同的(除了UCS2这种)。但是,如果代码中出现了明文的中文、日文之类非ASCII的字符(作为字符串常量或注释),他们在不同编码存储方式下,在硬盘上的字节流是不同的。

例如下面这段python代码

s = "函数"

1

在硬盘上保存时会这样

编码字节流

GBK

73 20 3D 20 22 BA AF CA FD 22

UTF-8

73 20 3D 20 22 E5 87 BD E6 95 B0 22

(注意到除了两个汉字,其他字符对应的字节都是一样的,比如最后那个0x22表示最后那个双引号)

如果不告诉Python解释器如何理解这个py文件,就会出现乱码。

比如,如果py文件实际上是以UTF-8方式存储的(就是表格第二行),但python解释器却以GBK编码存储去理解它,那么这段代码会被理解为

s = "鍑芥暟"

1

那么用

print(s)

1

打印字符串时,就会看到乱码文字了。 另外如果你python刚学不久,建议可以先去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目可拿,不懂的问题多跟里面的人交流,进步更快哦!

综上,为了让python解释器在解释py文件时能正确理解这个py文件里的非ASCII字符,就需要

以下python注释代码格式正确的是_Python文件头注释的含义,你肯定不懂相关推荐

  1. python哪个代码是正确的字典_Python - 字典(dict) 详解 及 代码

    字典(dict) 详解 及 代码 本文地址: http://blog.csdn.net/caroline_wendy/article/details/17291329 字典(dict)是表示映射的数据 ...

  2. Eclipse中java文件头注释格式设置

    2019独角兽企业重金招聘Python工程师标准>>> Eclipse中java文件头注释格式设置 Eclipse中java文件头注释格式设置 windows->prefere ...

  3. 以下python注释代码中_以下 Python注释代码不正确的是()

    以下 Python注释代码不正确的是() 答:// Python注释代码 According to Truman Doctrine, the US aimed to establish its heg ...

  4. 以下python注释代码中_以下Python注释代码,不正确的是()_学小易找答案

    [单选题]数字0-9是十进制的数码,全部数码的个数称为( ). [单选题]企业将款项汇往异地银行开设采购专户,根据收到的银行汇款凭证回单联,应借记的会计科目是( ).(2018年) [多选题]在201 ...

  5. python函数代码块以什么开头_Python初体验-开篇 代码全析

    第一次接触Python,现在就开始蟒蛇的威力. 一.首先贴上我们要解析的code: '''Convert file sizes to human-readable form. Available fu ...

  6. vscode注释代码后无法将其折叠,在注释掉的代码前后分别加上//#regin和//#endregion

    vscood注释代码后无法将其折叠,在注释掉的代码前后分别加上//#regin和//#endregion

  7. 8 pycharm 快捷键_Pycharm自动添加文件头注释和函数注释参数

    Pycharm应该是学python必用的编辑器了,关于它的使用之前已经写过几篇文章,今天再给大家继续介绍两个pycharm的小技巧,希望对大家有用. 1.自动添加文件头注释 文件头模板设置路径 Set ...

  8. 使用正则替换文件头注释

    2019独角兽企业重金招聘Python工程师标准>>> ##使用正则替换文件头注释 下了一个开源软件源代码,需要替换掉原有的文件头注释,格式如下 打算使用note++来进行替换,这里 ...

  9. Pycharm自动添加文件头注释和函数注释参数

    Pycharm应该是学python必用的编辑器了,关于它的使用之前已经写过几篇文章,今天再给大家继续介绍两个pycharm的小技巧,希望对大家有用. 1.自动添加文件头注释 文件头模板设置路径 Set ...

最新文章

  1. 万万没想到,1200 年前老祖宗们就知道大数据了
  2. 教你打包Java程序,jar转exe随处可跑
  3. DCMTK:类DcmSigned64bitVeryLong的测试程序
  4. 80端口被system(pid=4)占用的解决方法
  5. python分块处理功能_python 对列表分块
  6. 登錄CentOS出現-bash-4.1#
  7. 单点登录 cas 设置回调地址_单点登录落地实现技术有哪些,有哪些流行的登录方案搭配?...
  8. NOIp2018集训test-10-20 (bike day6)
  9. ETF操作实战记录:2022-2-24
  10. CF949 简要题解
  11. vue项目- v-lazy懒加载 图片没有出来之前 loding的图标占位
  12. android app自动卸载,无需ROOT 只需2招解决Android手机无法卸载的流氓APP
  13. c语言state用法,常见设计模式的解析和实现—State模式
  14. Numerical Optimization和Convex optimization 两本书的选择?
  15. SpringMVC视频-佟刚-专题视频课程
  16. Deep Reinforcement Learning for Task Offloading in Mobile Edge Computing Systems
  17. 08 Git中本地工作与远程仓库的同步
  18. windows7 python 指定源组播 10049_试图绑定到特定的外部ip :: [Errno 10049]请求的地址在其上下文中无效无法打开socket-(python 2.7)...
  19. Android 百分比布局
  20. 软件构造学习笔记ATD

热门文章

  1. ActionScript for Multiplayer Games and Virtual Worlds 下载。
  2. java 字符串时间处理_Java 时间和字符换的处理
  3. lwip可以用于发udp_CubeMX初始化正点原子STM32F407 LAN8720A调通LWIP
  4. php数组去空函数怎么写,分享php数组去除空值函数
  5. 如何给Android添加可视化工具,可视化实现在手机上抓包 方便调试 OkNetworkMonitor...
  6. 16位转8位 winhex_64位系统究竟强在哪里?
  7. win10电脑安装android,5步教你如何在Win10 PC上安装Android 10
  8. php 网站数量,PHP给网站添加在线人数统计
  9. linux 上传网页,Windows和Linux主机FTP上传网页注意事项
  10. 【算法竞赛学习】学术前沿趋势-论文作者统计