Python基础知识
本节目录
1、第一个小程序
2、使用注释
3、命名规则
4、字符编码
5、pyc文件到底是什么
6、获取用户输入
第一个小程序
>>>print("Hello,world!") Hello,world!
使用注释
注释使用自然语言对程序代码进行说明,但不会被计算机执行,注释能帮助其他程序员理解代码,同时能帮程序员自己回忆当初为什么要这么做,良好的注释是非常重要的
当前行注释:# 被注释内容
多行注释:""" 被注释内容 """
命名规则
命名是指给程序中自定义元素关联名字的过程,命令需要 保证在程序中名字具有唯一性。另外命名也是规则的,并不是胡乱命名的:
a、命名规定使用大小写字母、数字和划线的组合,但首字母只能是大小写字母或下划线,不能使用空格。
b、中文等非字母组合也可以作为名字。
应该避免的名称
- 单字符名称, 除了计数器和迭代器.
- 包/模块名中的连字符(-)
- 双下划线开头并结尾的名称(Python保留, 例如__init__)
命名约定
- 所谓”内部(Internal)”表示仅模块内可用, 或者, 在类内是保护或私有的.
- 用单下划线(_)开头表示模块变量或函数是protected的(使用import * from时不会包含).
- 用双下划线(__)开头的实例变量或方法表示类内私有.
- 将相关的类和顶级函数放在同一个模块里. 不像Java, 没必要限制一个类一个模块.
- 对类名使用大写字母开头的单词(如CapWords, 即Pascal风格), 但是模块名应该用小写加下划线的方式(如lower_with_under.py). 尽管已经有很多现存的模块使用类似于CapWords.py这样的命名, 但现在已经不鼓励这样做, 因为如果模块名碰巧和类名一致, 这会让人困扰.
Python之父Guido推荐的规范
Type | Public | Internal |
---|---|---|
Modules | lower_with_under | _lower_with_under |
Packages | lower_with_under | |
Classes | CapWords | _CapWords |
Exceptions | CapWords | |
Functions | lower_with_under() | _lower_with_under() |
Global/Class Constants | CAPS_WITH_UNDER | _CAPS_WITH_UNDER |
Global/Class Variables | lower_with_under | _lower_with_under |
Instance Variables | lower_with_under | _lower_with_under (protected) or __lower_with_under (private) |
Method Names | lower_with_under() | _lower_with_under() (protected) or __lower_with_under() (private) |
Function/Method Parameters | lower_with_under | |
Local Variables | lower_with_under |
字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来(比特位)表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536,
注:此处说的的是最少2个字节,可能更多
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果使用python2的话要先声明编码方式,不然遇上中文的话就会报错:ascii码无法表示中文
# -*- coding:utf-8 -*-(相当于告诉python解释器用utf-8进行编码)
python3的话则不用,因为python3的解释器默认是utf-8的编码方式
pyc 文件到底是什么?
因为在很多工作上Python的运行流程基本上取决于用户,因此源码不需要编译成二进制代码(否则无法实现大部分贴近用户的特性),而直接从源码运行程序。当我们运行python文件程序的时候,Python解释器将源码转换为字节码,.pyc 文件就是Python解释器编译之后产生的字节码。然后再由解释器来执行这些字节码。
.pyc文件一般都是在程序第一次执行后生成的,之后若再次执行该脚本,则先检查本地是否有上述字节码文件,当然模块在每次导入前总会检查其字节码文件的修改时间是否与自身的一致。若是则直接从该字节码文件读取内容,否则源模块重新导入,并在最后生成同名文件覆盖当前已有的字节码,从而完成内容的更新(详见import.py)。这样,就避免了修改源代码后与本地字节码文件产生冲突
ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。
.pyc文件是由.py文件经过编译后生成的字节码文件,其加载速度相对于之前的.py文件有所提高,而且还可以实现源码隐藏,以及一定程度上的反编译。比如,Python3.3编译生成的.pyc文件,Python3.4就别想着去运行啦!
获取用户输入
我们在编写程序的时候,我们无法预测用户会给变量提供什么值,这时我们就要用到非常常用的input函数了
username=input(“请输入用户名:”)
password=input(“请输入密码:”)
如果我们在输入密码时,不想让别人看到的话可以利用getpass模块的getpass方法
1 import getpass 2 3 username=input("请输入用户名:") 4 password=getpass.getpass("请输入密码:")