python入门拾遗,,一、解释器上一步中执


一、解释器

上一步中执行 python /home/dev/hello.py时,明确的指出 hello.py 脚本由 python 解释器来执行。

如果想要类似于执行shell脚本一样执行python脚本,例:./hello.py,那么就需要在 hello.py 文件的头部指定解释器,如下:

123#!/usr/bin/env pythonprint"hello,world"

如此一来,执行:./hello.py即可。

ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py

二、内容编码

python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

技术分享

技术分享

显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 =65536,
注:此处说的的是最少2个字节,可能更多

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...

所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:

报错:ascii码无法表示中文

123#!/usr/bin/env pythonprint"你好,世界"

改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:

1234#!/usr/bin/env python# -*- coding: utf-8 -*-print"你好,世界"三、注释

  当行注视:# 被注释内容

  多行注释:""" 被注释内容 """

搞清楚了ASCII、Unicode和UTF-8的关系,我们就可以总结一下现在计算机系统通用的字符编码工作方式:

在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。

用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件:

技术分享

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:

技术分享

所以你看到很多网页的源码上会有类似<meta charset="UTF-8" />的信息,表示该网页正是用的UTF-8编码。

四、执行脚本传入参数

Python有大量的模块,从而使得开发Python程序非常简洁。类库有包括三中:

Python内部提供的模块业内开源的模块程序员自己开发的模块

Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数

123456#!/usr/bin/env python# -*- coding: utf-8 -*-importsysprintsys.argv

python入门拾遗

相关内容

    暂无相关文章

评论关闭