初识Python(一)
- 2020 年 1 月 11 日
- 筆記
一、第一个Python语句
创建 hello.py 文件,内容如下:
print 'hello,world'
执行 hello.py 文件,即:
python hello.py
执行结果如下:

python内部执行过程如下:

二、解释器
默认执行上述的hello.py文件,需要明确的指出hello.py脚本由python解释器来执行,即python hello.py。
另外还可在hello.py的文件头部指定解释器,可像执行shell脚本一样执行python脚本,如下:
#!/usr/bin/env python print 'hello,world'
并赋予hello.py可执行权限,如:chmod +x hello.py
这样,直接执行./hello.py或hello.py,执行结果如下:

三、内容编码
python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示256个符号。
Bin |
Dec |
Hex |
缩写/字符 |
解释 |
---|---|---|---|---|
00000000 |
0 |
00 |
NUL(null) |
空字符 |
00000001 |
1 |
01 |
SOH(start of headling) |
标题开始 |
00000010 |
2 |
02 |
STX (start of text) |
正文开始 |
00000011 |
3 |
03 |
ETX (end of text) |
正文结束 |
00000100 |
4 |
04 |
EOT (end of transmission) |
传输结束 |
00000101 |
5 |
05 |
ENQ (enquiry) |
请求 |
00000110 |
6 |
06 |
ACK (acknowledge) |
收到通知 |
00000111 |
7 |
07 |
BEL (bell) |
响铃 |
00001000 |
8 |
08 |
BS (backspace) |
退格 |
00001001 |
9 |
09 |
HT (horizontal tab) |
水平制表符 |
00001010 |
10 |
0A |
LF (NL line feed, new line) |
换行键 |
00001011 |
11 |
0B |
VT (vertical tab) |
垂直制表符 |
00001100 |
12 |
0C |
FF (NP form feed, new page) |
换页键 |
00001101 |
13 |
0D |
CR (carriage return) |
回车键 |
00001110 |
14 |
0E |
SO (shift out) |
不用切换 |
00001111 |
15 |
0F |
SI (shift in) |
启用切换 |
00010000 |
16 |
10 |
DLE (data link escape) |
数据链路转义 |
00010001 |
17 |
11 |
DC1 (device control 1) |
设备控制1 |
00010010 |
18 |
12 |
DC2 (device control 2) |
设备控制2 |
00010011 |
19 |
13 |
DC3 (device control 3) |
设备控制3 |
00010100 |
20 |
14 |
DC4 (device control 4) |
设备控制4 |
00010101 |
21 |
15 |
NAK (negative acknowledge) |
拒绝接收 |
00010110 |
22 |
16 |
SYN (synchronous idle) |
同步空闲 |
00010111 |
23 |
17 |
ETB (end of trans. block) |
传输块结束 |
00011000 |
24 |
18 |
CAN (cancel) |
取消 |
00011001 |
25 |
19 |
EM (end of medium) |
介质中断 |
00011010 |
26 |
1A |
SUB (substitute) |
替补 |
00011011 |
27 |
1B |
ESC (escape) |
溢出 |
00011100 |
28 |
1C |
FS (file separator) |
文件分割符 |
00011101 |
29 |
1D |
GS (group separator) |
分组符 |
00011110 |
30 |
1E |
RS (record separator) |
记录分离符 |
00011111 |
31 |
1F |
US (unit separator) |
单元分隔符 |
00100000 |
32 |
20 |
(space) |
空格 |
00100001 |
33 |
21 |
! |
|
00100010 |
34 |
22 |
" |
|
00100011 |
35 |
23 |
# |
|
00100100 |
36 |
24 |
$ |
|
00100101 |
37 |
25 |
% |
|
00100110 |
38 |
26 |
& |
|
00100111 |
39 |
27 |
' |
|
00101000 |
40 |
28 |
( |
|
00101001 |
41 |
29 |
) |
|
00101010 |
42 |
2A |
* |
|
00101011 |
43 |
2B |
+ |
|
00101100 |
44 |
2C |
, |
|
00101101 |
45 |
2D |
– |
|
00101110 |
46 |
2E |
. |
|
00101111 |
47 |
2F |
/ |
|
00110000 |
48 |
30 |
0 |
|
00110001 |
49 |
31 |
1 |
|
00110010 |
50 |
32 |
2 |
|
00110011 |
51 |
33 |
3 |
|
00110100 |
52 |
34 |
4 |
|
00110101 |
53 |
35 |
5 |
|
00110110 |
54 |
36 |
6 |
|
00110111 |
55 |
37 |
7 |
|
00111000 |
56 |
38 |
8 |
|
00111001 |
57 |
39 |
9 |
|
00111010 |
58 |
3A |
: |
|
00111011 |
59 |
3B |
; |
|
00111100 |
60 |
3C |
< |
|
00111101 |
61 |
3D |
= |
|
00111110 |
62 |
3E |
> |
|
00111111 |
63 |
3F |
? |
|
01000000 |
64 |
40 |
@ |
|
01000001 |
65 |
41 |
A |
|
01000010 |
66 |
42 |
B |
|
01000011 |
67 |
43 |
C |
|
01000100 |
68 |
44 |
D |
|
01000101 |
69 |
45 |
E |
|
01000110 |
70 |
46 |
F |
|
01000111 |
71 |
47 |
G |
|
01001000 |
72 |
48 |
H |
|
01001001 |
73 |
49 |
I |
|
01001010 |
74 |
4A |
J |
|
01001011 |
75 |
4B |
K |
|
01001100 |
76 |
4C |
L |
|
01001101 |
77 |
4D |
M |
|
01001110 |
78 |
4E |
N |
|
01001111 |
79 |
4F |
O |
|
01010000 |
80 |
50 |
P |
|
01010001 |
81 |
51 |
Q |
|
01010010 |
82 |
52 |
R |
|
01010011 |
83 |
53 |
S |
|
01010100 |
84 |
54 |
T |
|
01010101 |
85 |
55 |
U |
|
01010110 |
86 |
56 |
V |
|
01010111 |
87 |
57 |
W |
|
01011000 |
88 |
58 |
X |
|
01011001 |
89 |
59 |
Y |
|
01011010 |
90 |
5A |
Z |
|
01011011 |
91 |
5B |
[ |
|
01011100 |
92 |
5C |
|
|
01011101 |
93 |
5D |
] |
|
01011110 |
94 |
5E |
^ |
|
01011111 |
95 |
5F |
_ |
|
01100000 |
96 |
60 |
` |
|
01100001 |
97 |
61 |
a |
|
01100010 |
98 |
62 |
b |
|
01100011 |
99 |
63 |
c |
|
01100100 |
100 |
64 |
d |
|
01100101 |
101 |
65 |
e |
|
01100110 |
102 |
66 |
f |
|
01100111 |
103 |
67 |
g |
|
01101000 |
104 |
68 |
h |
|
01101001 |
105 |
69 |
i |
|
01101010 |
106 |
6A |
j |
|
01101011 |
107 |
6B |
k |
|
01101100 |
108 |
6C |
l |
|
01101101 |
109 |
6D |
m |
|
01101110 |
110 |
6E |
n |
|
01101111 |
111 |
6F |
o |
|
01110000 |
112 |
70 |
p |
|
01110001 |
113 |
71 |
q |
|
01110010 |
114 |
72 |
r |
|
01110011 |
115 |
73 |
s |
|
01110100 |
116 |
74 |
t |
|
01110101 |
117 |
75 |
u |
|
01110110 |
118 |
76 |
v |
|
01110111 |
119 |
77 |
w |
|
01111000 |
120 |
78 |
x |
|
01111001 |
121 |
79 |
y |
|
01111010 |
122 |
7A |
z |
|
01111011 |
123 |
7B |
{ |
|
01111100 |
124 |
7C |
| |
|
01111101 |
125 |
7D |
} |
|
01111110 |
126 |
7E |
~ |
|
01111111 |
127 |
7F |
DEL (delete) |
删除 |
由于ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode;
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由16位来表示(2个字节),即:2 **16 = 65536;
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存,等;
所以,python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill),如果是python代码中包含中文,将会执行出错,如下:
#!/usr/bin/env python print "你好,世界"
报错如下:

因此,需要在py文件中显示的告诉python解释器,用什么编码来执行代码,如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- print "你好,世界"
结果如下:

四、注释
当行注释:在语句前加上#,被注释的语句在python中不会被执行,如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- #这是python的第一个示例代码; print "你好,世界"
注:#!/usr/bin/env python并不是单纯的注释信息,主要用来指定用什么解释器运行脚本以及解释器所在的位置;而# -*- coding: utf-8 -*-,用来指定文件编码为utf-8;
多行注释:在段落的前一行或开头及后一行或结尾,用'''包含起来,如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- ''' 这是 python的 第一个 示例代码 ''' print "你好,世界"
或者
#!/usr/bin/env python # -*- coding: utf-8 -*- '''这是 python的 第一个 示例代码''' print "你好,世界"
五、执行脚本传入参数
Python可通过引用大量的模块,从而使开发的Python程序更加简洁、简明。Python的类库主要包括三种:
- Python内部提供的模块
- 第三方模块
- 业内开源的模块
- 程序员自己开发的模块
例如,Python内部提供一个sys的模块,其中的sys.platform用来获取当前系统平台,可使用import命令或from …import…命令导入模块;
#!/usr/bin/env python # -*- coding: utf-8 -*- import sys print sys.platform
或者
#!/usr/bin/env python # -*- coding: utf-8 -*- from sys import platform print platform
执行结果如下:

六、pyc 文件
在执行Python代码时,如果导入了其他的.py文件,那么在执行过程中会自动生成一个与其同名的.pyc文件,该文件就是Python解释器编译之后产生的字节码;代码经过编译可以产生字节码,字节码通过反编译也可以得到代码;