#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:XXX

 

1. #!/usr/bin/env python 与 #!/usr/bin/python 的区别

这些注释并不仅仅是写给读者看的注释,它也写给操作系统看的,这些注释决定了系统将如何运行这些文件。

linux自带python解释器。在编写.py文件时,只要写上了#!/usr/bin/python这行注释,用户就可以直接在命令行用文件名来执行py文件,例如:   testmode.py  

它的意义就类似于在window命令行中,你必须得写 python  testmode.py  或 javac testmode.java  或 java testmode.class 来运行文件,你要通过文件名前面的关键字才能去启动对应的解释器。而有了这行注释,Linux系统就知道了你要用什么来执行这个文件,你就可以直接用文件名去跑它了。

#!/usr/bin/python 注释的问题在于,Linux只系统默认的py解释器(也就是自带的那个)来运行文件。这样用户就无法使用自己的python版本了,不同的py版本之间语法有些差异,尤其是变动比较大的py2和py3,这些差异会使得整个程序无法正常运行。#!/usr/bin/env python 的出现可则让用户可以自行选择python版本,用户可以在环境变量中配置自己的py解释器(ps:用户安装的版本默认定位在linux的local文件夹中)。#!/usr/bin/env python 这行注释,会使linux在解析文件时,知道要去使用环境变量中的py解释器而非系统自带的那个。

所以如果你要使用该注释,推荐使用#!/usr/bin/env python 的注释,而非 #!/usr/bin/python。

 

如果是在windows环境中执行文件的话,这行注释就无所谓了,因为你在cmd中,需要先定位到你py文件所在的文件夹后,再使用 python testmode.py 这样的语句来执行文件。window系统也不会去看这行注释.

 

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

   它的作用:在Linux下指定文件的编码方式,用于支持中文。

   python2需要在首行写-*- coding:utf-8 -*-才能支持中文,python3开始默认支持中文了,就可以省去这行注释。

    废话一段编码历史:

关于编码体系:
ASCII: 是最早的计算机编码方式,它不支持中文韩文日文等等
GB2312:由中国国家标准总局1980年发布,它是最早支持中文的编码方式,共收入汉字6763个和非汉字图形字符682个.(它普遍用于早年的手机,MP4,移动端等,所以那时候很多电脑上可以看的文字到了手机上会变成乱码)
GBK: 使用了双字节编码方案,其编码范围从8140至FEFE(剔除xx7F),共23940个码位,收录了21003个汉字,完全兼容GB2312-80标准,支持国际标准ISO/IEC10646-1和国家标准GB13000-1中的全部中日韩汉字,并包含了BIG5编码中的所有汉字。GBK编码方案于1995年10月制定, 1995年12月正式发布GBK.
UTF-8:UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,又称万国码。由Ken Thompson于1992年创建。UTF-8用1到6个字节编码Unicode字符。用在网页上可以统一页面显示中文简体繁体及其它语言(如英文,日文,韩文).utf-8是动态编码方式,英文占一个字节,中文占3-4个字节

3.所以如果是在windows的Python3下运行你的程序,你完全可以不去写前两行注释的,但是出于好习惯,也为了方便跨平台以及兼容,写一写还是好的。

4.如何在pyCharm中设置文件默认的开头的注释格式。如下:

  1.view中勾选Toolbar 工具条,点击设置,也可使用ctrl+alt+S进入

  

  2.选择editor下的file and code templates, 在右侧file中选择python script ,右侧输入注释

  

 

  

 

 

 

 

 

 

版权声明:本文为shizilunya原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/shizilunya/p/8081285.html