python基础(4)---解释器、编码、字符拼接
1.Python种类
1.1Cpython
Python官方版本,使用C语言实现,运行机制:先编译.py(源码文件)->pyc(字节码文件),最终执行时先将字节码转换成机器码,然后交给cpu执行;
如果再次运行时,会优先寻找字节码文件,若源码文件被修改,则会再次编译成字节码;
1.2Jython
Python语言的java实现,不仅提供Python的库,同时也提供所有的java类。能运行在任何可jianrongjava1.1或更高的java虚拟机平台上;
运行机制:py(源文件)->动态编译成字节码(java字节码)->然后在jvm中执行;
由于最终执行会编译java字节码,所以对java类无缝存取,对于与java语言的交互效率极高;
1.3IronPython
Python语言的C#实现,由Jython的创始人创造
运行机制:源码文件->C#字节码->CLR(公共语言运行库)与(JVM类似);
1.4PyPy
rPython实现的Python,rPython是Python的一个子集,Python语言的动态编译器,它使用的是JIT(及时编译器);
运行机制:先编译源码文件->字节码->机器码,然后直接有cpu执行;
1.5各种版本总结
pypy与其他版本对比,编译过程相对慢,但是执行效率是最高的,因为它是编译成机器码,cpu可以直接执行机器码;
其他语言都需要再转换成机器码,然后交由cpu执行。
2.传递参数
2.1新建Python文件,名为hello_args.py,输入下面的代码
import sys
print(sys.argv)
通过python hello_args.py,屏幕打印输出
['hello_args.py']
python hello_args.py hello world屏幕打印输出
['hello_args.py', 'hello', 'world']
默认文件名本身则是argv[0],属于第一个参数;
如果要使用用户传递的参数,可以通过下表方式获取,操作方法与列表操作方法一样
3.内容编码
3.1针对2.x版本
Python解释器加载py文件时,会对内容进行编码(默认ascii)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统;
主要用于显示现代英语和其他西欧语言,它是现金最通用的单字节编码系统,并等同于国际标准ISO/IEC646;
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0)
ASCII码使用指定的7位或8位二进制数组合来表示128或256种可能的字符。标准ASCII码也叫基础ASCII码,使用7位二进制数来表示所有的大写和小写字母、数字0-9、标点符号,以及在美式英语中使用的特殊控制字符。其中:0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符);
如控制符:LF(换行)、CR(回车)、FF(换页)、DEF(删除)、BS(退格)、BEL(响铃)等;
通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
ASCII值为8、9、10和13分别转换为退格、制表、换行和回车字符;
它们并没有特定的图形显示,但会依不通的应用程序,而对文本显示有不同的影响。
32~126(共95)是字符(32是空格)。
65~90为26个大写英文字母,
97~122为26个小写英文字母,
其余为一些标点符号、运算符号等。
3.2标准I表
Bin
|
Dec
|
Hex
|
缩写/字符
|
解释
|
|
0000 0000
|
0
|
00
|
NUL(null)
|
空字符
|
|
0000 0001
|
1
|
01
|
SOH(start of headline)
|
标题开始
|
|
0000 0010
|
2
|
02
|
STX (start of text)
|
正文开始
|
|
0000 0011
|
3
|
03
|
ETX (end of text)
|
正文结束
|
|
0000 0100
|
4
|
04
|
EOT (end of transmission)
|
传输结束
|
|
0000 0101
|
5
|
05
|
ENQ (enquiry)
|
请求
|
|
0000 0110
|
6
|
06
|
ACK (acknowledge)
|
收到通知
|
|
0000 0111
|
7
|
07
|
BEL (bell)
|
响铃
|
|
0000 1000
|
8
|
08
|
BS (backspace)
|
退格
|
|
0000 1001
|
9
|
09
|
HT (horizontal tab)
|
水平制表符
|
|
0000 1010
|
10
|
0A
|
LF (NL line feed, new line)
|
换行键
|
|
0000 1011
|
11
|
0B
|
VT (vertical tab)
|
垂直制表符
|
|
0000 1100
|
12
|
0C
|
FF (NP form feed, new page)
|
换页键
|
|
0000 1101
|
13
|
0D
|
CR (carriage return)
|
回车键
|
|
0000 1110
|
14
|
0E
|
SO (shift out)
|
不用切换
|
|
0000 1111
|
15
|
0F
|
SI (shift in)
|
启用切换
|
|
0001 0000
|
16
|
10
|
DLE (data link escape)
|
数据链路转义
|
|
0001 0001
|
17
|
11
|
DC1 (device control 1)
|
设备控制1
|
|
0001 0010
|
18
|
12
|
DC2 (device control 2)
|
设备控制2
|
|
0001 0011
|
19
|
13
|
DC3 (device control 3)
|
设备控制3
|
|
0001 0100
|
20
|
14
|
DC4 (device control 4)
|
设备控制4
|
|
0001 0101
|
21
|
15
|
NAK (negative acknowledge)
|
拒绝接收
|
|
0001 0110
|
22
|
16
|
SYN (synchronous idle)
|
同步空闲
|
|
0001 0111
|
23
|
17
|
ETB (end of trans. block)
|
传输块结束
|
|
0001 1000
|
24
|
18
|
CAN (cancel)
|
取消
|
|
0001 1001
|
25
|
19
|
EM (end of medium)
|
介质中断
|
|
0001 1010
|
26
|
1A
|
SUB (substitute)
|
替补
|
|
0001 1011
|
27
|
1B
|
ESC (escape)
|
换码(溢出)
|
|
0001 1100
|
28
|
1C
|
FS (file separator)
|
文件分割符
|
|
0001 1101
|
29
|
1D
|
GS (group separator)
|
分组符
|
|
0001 1110
|
30
|
1E
|
RS (record separator)
|
记录分离符
|
|
0001 1111
|
31
|
1F
|
US (unit separator)
|
单元分隔符
|
|
0010 0000
|
32
|
20
|
(space)
|
空格
|
|
0010 0001
|
33
|
21
|
!
|
||
0010 0010
|
34
|
22
|
"
|
||
0010 0011
|
35
|
23
|
#
|
||
0010 0100
|
36
|
24
|
$
|
||
0010 0101
|
37
|
25
|
%
|
||
0010 0110
|
38
|
26
|
&
|
||
0010 0111
|
39
|
27
|
'
|
||
0010 1000
|
40
|
28
|
(
|
||
0010 1001
|
41
|
29
|
)
|
||
0010 1010
|
42
|
2A
|
*
|
||
0010 1011
|
43
|
2B
|
+
|
||
0010 1100
|
44
|
2C
|
,
|
||
0010 1101
|
45
|
2D
|
-
|
||
0010 1110
|
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)
|
删除
|
八进制
|
十六进制
|
十进制
|
字符
|
八进制
|
十六进制
|
十进制
|
字符
|
0
|
0
|
0
|
nul
|
100
|
40
|
64
|
@
|
1
|
1
|
1
|
soh
|
101
|
41
|
65
|
A
|
2
|
2
|
2
|
stx
|
102
|
42
|
66
|
B
|
3
|
3
|
3
|
etx
|
103
|
43
|
67
|
C
|
4
|
4
|
4
|
eot
|
104
|
44
|
68
|
D
|
5
|
5
|
5
|
enq
|
105
|
45
|
69
|
E
|
6
|
6
|
6
|
ack
|
106
|
46
|
70
|
F
|
7
|
7
|
7
|
bel
|
107
|
47
|
71
|
G
|
10
|
8
|
8
|
bs
|
110
|
48
|
72
|
H
|
11
|
9
|
9
|
ht
|
111
|
49
|
73
|
I
|
12
|
0a
|
10
|
nl
|
112
|
4a
|
74
|
J
|
13
|
0b
|
11
|
vt
|
113
|
4b
|
75
|
K
|
14
|
0c
|
12
|
ff
|
114
|
4c
|
76
|
L
|
15
|
0d
|
13
|
cr
|
115
|
4d
|
77
|
M
|
16
|
0e
|
14
|
so
|
116
|
4e
|
78
|
N
|
17
|
0f
|
15
|
si
|
117
|
4f
|
79
|
O
|
20
|
10
|
16
|
dle
|
120
|
50
|
80
|
P
|
21
|
11
|
17
|
dc1
|
121
|
51
|
81
|
Q
|
22
|
12
|
18
|
dc2
|
122
|
52
|
82
|
R
|
23
|
13
|
19
|
dc3
|
123
|
53
|
83
|
S
|
24
|
14
|
20
|
dc4
|
124
|
54
|
84
|
T
|
25
|
15
|
21
|
nak
|
125
|
55
|
85
|
U
|
26
|
16
|
22
|
syn
|
126
|
56
|
86
|
V
|
27
|
17
|
23
|
etb
|
127
|
57
|
87
|
W
|
30
|
18
|
24
|
can
|
130
|
58
|
88
|
X
|
31
|
19
|
25
|
em
|
131
|
59
|
89
|
Y
|
32
|
1a
|
26
|
sub
|
132
|
5a
|
90
|
Z
|
33
|
1b
|
27
|
esc
|
133
|
5b
|
91
|
[
|
34
|
1c
|
28
|
fs
|
134
|
5c
|
92
|
\
|
35
|
1d
|
29
|
gs
|
135
|
5d
|
93
|
]
|
36
|
1e
|
30
|
re
|
136
|
5e
|
94
|
^
|
37
|
1f
|
31
|
us
|
137
|
5f
|
95
|
_
|
40
|
20
|
32
|
sp
|
140
|
60
|
96
|
'
|
41
|
21
|
33
|
!
|
141
|
61
|
97
|
a
|
42
|
22
|
34
|
"
|
142
|
62
|
98
|
b
|
43
|
23
|
35
|
#
|
143
|
63
|
99
|
c
|
44
|
24
|
36
|
$
|
144
|
64
|
100
|
d
|
45
|
25
|
37
|
%
|
145
|
65
|
101
|
e
|
46
|
26
|
38
|
&
|
146
|
66
|
102
|
f
|
47
|
27
|
39
|
`
|
147
|
67
|
103
|
g
|
50
|
28
|
40
|
(
|
150
|
68
|
104
|
h
|
51
|
29
|
41
|
)
|
151
|
69
|
105
|
i
|
52
|
2a
|
42
|
*
|
152
|
6a
|
106
|
j
|
53
|
2b
|
43
|
+
|
153
|
6b
|
107
|
k
|
54
|
2c
|
44
|
,
|
154
|
6c
|
108
|
l
|
55
|
2d
|
45
|
-
|
155
|
6d
|
109
|
m
|
56
|
2e
|
46
|
.
|
156
|
6e
|
110
|
n
|
57
|
2f
|
47
|
/
|
157
|
6f
|
111
|
o
|
60
|
30
|
48
|
0
|
160
|
70
|
112
|
p
|
61
|
31
|
49
|
1
|
161
|
71
|
113
|
q
|
62
|
32
|
50
|
2
|
162
|
72
|
114
|
r
|
63
|
33
|
51
|
3
|
163
|
73
|
115
|
s
|
64
|
34
|
52
|
4
|
164
|
74
|
116
|
t
|
65
|
35
|
53
|
5
|
165
|
75
|
117
|
u
|
66
|
36
|
54
|
6
|
166
|
76
|
118
|
v
|
67
|
37
|
55
|
7
|
167
|
77
|
119
|
w
|
70
|
38
|
56
|
8
|
170
|
78
|
120
|
x
|
71
|
39
|
57
|
9
|
171
|
79
|
121
|
y
|
72
|
3a
|
58
|
:
|
172
|
7a
|
122
|
z
|
73
|
3b
|
59
|
;
|
173
|
7b
|
123
|
{
|
74
|
3c
|
60
|
<
|
174
|
7c
|
124
|
|
|
75
|
3d
|
61
|
=
|
175
|
7d
|
125
|
}
|
76
|
3e
|
62
|
>
|
176
|
7e
|
126
|
~
|
77
|
3f
|
63
|
?
|
177
|
7f
|
127
|
del
|
3.3大小规则
1)数字0~9比字母小。如“7”<“F”;
2)数字0比数字9要小,并按0到9顺序递增。如“3”<“8”;
3)字母A比字母Z要小,并按A到Z顺序递增。如“A”<“Z”;
4)同个字母的大写字母比小写字母要小。如“A”<“a”。
记住几个常见字母的ASCII码大小:
"换行Lf"为0x0A;“回车CR”为0x0D;空格为0x20;“0”为0x30;“A”为0x41;“a”为0x61。另外还有128-255的ASCII字符。
查询ASCII技巧,方便查询ASCII码对应的字符:新建一个文本文档,按住ALT+要查询的码值(注意,这里是十进制),松开即可显示出对应字符。例如:按住ALT+97,则会显示出‘a’。
3.4扩展ASCII
扩展ASCII字符是从128到255(0x80-0xff)的字符。扩展ASCII不再是国际标准;
3.5汉子编码
0-127是7位ASCII码的范围,是国际标准,至于汉子,不同的字符集用的ASCII码范围也不一样,常用的汉子字符集有GB2312-80,GBK,Big5,unicode等。
GB_2312字符集是目前最常用的汉子编码标准,windows 95/98/2000中使用的GBK字符集就包含了GB2312,或者说和GB2312兼容;
GB_2312字符集包含了6763个简体汉子,和682个标准中文符号,在这个标准中,每个汉子用2个字节来表示,每个字节的ASCII码为161-254(16进制A1-FE),第一个字节对应于区码的1-94区,第二个字节对应于位码的1-94位。
161-254其实很好记忆,大家都知道英文字符中,可打印的字符范围为33-126。将这对数加上128(或者说最高位置1),就得到汉子使用的字符范围;
GB18030的规范是汉子第一个字节在0x81-0xFE之间,第二个字节位于区间0x40-0x7E以及0x80-0xFE。每个字节转化为整数大于128.
4.字符串拼接
4.1拼接方式
name = 'hello'
print("%s world" % name) #将会输出 hello world #第二季拼接方式
print("{name} world" .format(name = name))
#打印输出Hello world
#前面这个name相当于一个占位符,第二个name即占位符的名称,第三个name则是上面定义的name变量名 #第三种方式
print(name + "world") #打印输出结果与上面一样
#有一种方式类似于c#方式占位符
name = "hello" print("{0} world" .format(name)) #打印输出结果与上面相同 print("{0} world,{1}" .format(name,"I like python"))
虽然python给我们提供了多种字符串拼接方式,但是第三者方式拼接时运用时,系统会为其开辟多个空间存储数据,浪费系统资源,而前两者只需开辟两块内存空间,动态存取数据,有效的减少资源的浪费
python基础(4)---解释器、编码、字符拼接的更多相关文章
- python基础——字符串和编码
python基础——字符串和编码 字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用 ...
- 六 Python基础 字符串和编码
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...
- python基础(三)----字符编码以及文件处理
字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程 字符--------(翻译过程)------->数字 这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...
- python基础之集合,字符编码
六.集合类型 1.用途:关系运算 2.定义方式:s = {1,2,’a’} {}内用,分隔开多个元素,每个元素都必须是不可变(即可hash)类型 强调:2.1集合内的元素时无序的 2.2集合内的元素不 ...
- python基础2--进制、字符编码和文件处理
一.进制 1.二进制 定义 二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一" 转换方式 二进制转换为十进制: 把二进制数按权展开.相加即得十进制数. ...
- Python 基础篇:编码、变量、模块
1. 编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ASCII). 2. 变量 变量定义的规则: 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数 ...
- python基础——字符串、编码、格式化
1.三种编码:ascii Unicode utf8 2.字符串和编码数字的两个函数:ord(字符转数字ord(‘A’)=65)和 chr(数字转字符chr(65)=A) 3.bytes存储编码,记住两 ...
- Python基础(字符串和编码)
字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...
- python基础===拆分字符串,和拼接字符串
给定某字符,只需要保留其中的有效汉字或者字母,数字之类的.去掉特殊符号或者以某种格式进行拆分的时候,就可以采用re.split的方法.例如 ============================== ...
- python 基础篇 06 编码 以及小知识点补充
本节主要内容: 1. is和==的区别2. 编码的问题 ⼀. is和==的区别1. id()通过id()我们可以查看到⼀个变量表⽰的值在内存中的地址 注 ----<<<在pytho ...
随机推荐
- MySQL基础原创笔记(二)
表索引关键字:PRI primary key 表示主键,唯一 写法: id bigint(20) unsigned primary key not null ,uni UNIQUE 表示唯一 id b ...
- 阿里云遇到的坑:CentOS7防火墙(Firewalld),你关了吗?
阿里云官方教程: https://help.aliyun.com/knowledge_detail/41317.html 百度参考的牛人教程(推荐): http://www.111cn.net/sys ...
- 差点AFO
差点就AFO了,小伙伴们一定注意护眼啊. 眼睛总算是活过来了. 还有一个月联赛,加油
- Linux环境下用Weblogic发布项目【二】 -- 配置Domain域
配置注意事项: 修改密码时密码长度最少8位:在"<下一步>"后面为空即表示敲回车: 具体配置步骤如下: [root@GPS-App ~]# [root@GPS-App ...
- hdu4109 topsort
Problem Description Ali has taken the Computer Organization and Architecture course this term. He le ...
- POJ2349:Arctic Network(二分+最小生成树)
Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 28311 Accepted: 8570 题 ...
- [nginx]代理404跳转
1.nginx作为反向代理,如果代理请求的页面不存在,返回404,但是浏览器中一片空白. 要求:将404跳转到指定页面. 在server段添加: error_page 404 /; 不能生效,原因是需 ...
- stout代码分支之十二:巧妙的EXIT
在c++中,为了便于定位问题,进程异常退出时,需要获取返回码和错误信息.stout中将这种功能巧妙的封装成EXIT类. #define EXIT(status) __Exit(status).stre ...
- HDU 3605 最大流+状态压缩
Escape Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Subm ...
- nginx 安装 lua-nginx-module
nginx增加lua模块 yum install -y gcc g++ gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel wg ...