码迷,mamicode.com
首页 > 编程语言 > 详细

基础篇_001_初识_Python文件内容中头两行的意义

时间:2020-02-02 23:53:04      阅读:111      评论:0      收藏:0      [点我收藏+]

标签:linu   asc   ===   意义   int()   方法   多个   上网   没有   

  相信有部分同学上网“欣赏”大佬的代码时,会注意到有些大佬喜欢在前面俩行加上两句注释,很好奇有什么作用,然后就用高中生物实验的研究方法——控制变量法——来研究,但是发现删除后并没有什么改变,所以感觉会有些懵B。但是在这里想跟大家说的是:不用怕,这个很简单,也不是很重要。理由就是:既然是注释,那就表明对于一般的人来说,这两句话是无关紧要的【滑稽】。如果你确实很想知道这是啥、有何作用,那下面我就带领大家拨开这层迷雾!

 

----第一句:Python解释器的路径(只针对Linux操作系统下运行的Python文件) ===》#!/usr/bin/env python

  在Windows操作系统下,这一句写了和没写是一码事;而在Linux操作系统下就不是这样了。

  在Linux操作系统下执行Python文件有两种方法:

  ----与Windows操作系统下一样的:python 文件名.py ===》python就是解释器(这里已经配置好了环境变量,如果没有就必须写出其完整路径)

  ----Linux操作系统下独有的:  ./文件名.py    ===》大家不难发现在这样一条命令行中并没有指定解释器,所以,在文件的最开头要表明Python解释器的地址,这样,文件才能正确的被解释器解释。

 

----第二句:Python解释器解释文件内容所用的编码(只针对于Python2系列)  ===》# -*- coding:utf8 -*-

  这句话的意思就是用utf8的字符编码格式来编码文件内容,避免Python2系列中对中文的不兼容,因为Python2系列中只含有ASCII码编码的字符;需要注意的是:用了这句话之后,并不是保证中文输出不乱码,而是保证当文件内容中含有中文字符的时候,解释器仍能继续解释。

--------------------------------------------------------------------------------------------------------------------------------

补充字符的编码:

----编码的历史与进化

  1. 最开始计算机诞生于美国,所以当时的计算机只编码了英文字母 ===》创建了首个字符编码系统:ASCII码——只有8位,最多只能表示256个字符。

  2. 随着时代的发展,计算机被多个国家所接受,8为编码显然就已经不够人们使用了 ===》于是创建了一种新的编码方式:Unicode,它规定至少要16位,这样才能将世界上所有的字符表示完。

  3. 但是这又出现了一个问题,就是资源浪费 ===》我们先假设在ASCII码中“&”符号的编码是8位编码“0000 0001”,那么在Unicode编码中,由于硬性规定编码字长必须 ≥ 16,所以在Unicode编码中,“&”符号的编码不得不为16为编码“0000 0000 0000 0001”,这样,既然在ASCII码中能用8位列表示,那么何必还要在前面画蛇添足呢? ===》所以产生了现在最为流行的编码方式:UTF-8,它规定:能少就少(就是能用ASCII码表示的就尽量用ASCII码来表示,实在不行就增加位数)。

 

----Python2中文的乱码问题(我猜测应该是Python解释器用UTF-8解码字符,但是print()函数用的是ANSI编码:GBK,大家可以用UltraEdit来辅助验证)

  

 

基础篇_001_初识_Python文件内容中头两行的意义

标签:linu   asc   ===   意义   int()   方法   多个   上网   没有   

原文地址:https://www.cnblogs.com/SimbaWang/p/12254110.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!