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)---解释器、编码、字符拼接的更多相关文章

  1. python基础——字符串和编码

    python基础——字符串和编码 字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用 ...

  2. 六 Python基础 字符串和编码

    字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...

  3. python基础(三)----字符编码以及文件处理

      字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程   字符--------(翻译过程)------->数字   这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...

  4. python基础之集合,字符编码

    六.集合类型 1.用途:关系运算 2.定义方式:s = {1,2,’a’} {}内用,分隔开多个元素,每个元素都必须是不可变(即可hash)类型 强调:2.1集合内的元素时无序的 2.2集合内的元素不 ...

  5. python基础2--进制、字符编码和文件处理

    一.进制 1.二进制 定义 二进制数据是用0和1两个数码来表示的数.它的基数为2,进位规则是"逢二进一"   转换方式 二进制转换为十进制: 把二进制数按权展开.相加即得十进制数. ...

  6. Python 基础篇:编码、变量、模块

    1. 编码 python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ASCII). 2. 变量 变量定义的规则: 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数 ...

  7. python基础——字符串、编码、格式化

    1.三种编码:ascii Unicode utf8 2.字符串和编码数字的两个函数:ord(字符转数字ord(‘A’)=65)和 chr(数字转字符chr(65)=A) 3.bytes存储编码,记住两 ...

  8. Python基础(字符串和编码)

    字符编码 我们已经讲过了,字符串也是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特 ...

  9. python基础===拆分字符串,和拼接字符串

    给定某字符,只需要保留其中的有效汉字或者字母,数字之类的.去掉特殊符号或者以某种格式进行拆分的时候,就可以采用re.split的方法.例如 ============================== ...

  10. python 基础篇 06 编码 以及小知识点补充

    本节主要内容: 1. is和==的区别2. 编码的问题 ⼀. is和==的区别1. id()通过id()我们可以查看到⼀个变量表⽰的值在内存中的地址 注  ----<<<在pytho ...

随机推荐

  1. MySQL基础原创笔记(二)

    表索引关键字:PRI primary key 表示主键,唯一 写法: id bigint(20) unsigned primary key not null ,uni UNIQUE 表示唯一 id b ...

  2. 阿里云遇到的坑:CentOS7防火墙(Firewalld),你关了吗?

    阿里云官方教程: https://help.aliyun.com/knowledge_detail/41317.html 百度参考的牛人教程(推荐): http://www.111cn.net/sys ...

  3. 差点AFO

    差点就AFO了,小伙伴们一定注意护眼啊. 眼睛总算是活过来了. 还有一个月联赛,加油

  4. Linux环境下用Weblogic发布项目【二】 -- 配置Domain域

    配置注意事项: 修改密码时密码长度最少8位:在"<下一步>"后面为空即表示敲回车: 具体配置步骤如下: [root@GPS-App ~]# [root@GPS-App ...

  5. hdu4109 topsort

    Problem Description Ali has taken the Computer Organization and Architecture course this term. He le ...

  6. POJ2349:Arctic Network(二分+最小生成树)

    Arctic Network Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 28311   Accepted: 8570 题 ...

  7. [nginx]代理404跳转

    1.nginx作为反向代理,如果代理请求的页面不存在,返回404,但是浏览器中一片空白. 要求:将404跳转到指定页面. 在server段添加: error_page 404 /; 不能生效,原因是需 ...

  8. stout代码分支之十二:巧妙的EXIT

    在c++中,为了便于定位问题,进程异常退出时,需要获取返回码和错误信息.stout中将这种功能巧妙的封装成EXIT类. #define EXIT(status) __Exit(status).stre ...

  9. HDU 3605 最大流+状态压缩

    Escape Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Subm ...

  10. nginx 安装 lua-nginx-module

    nginx增加lua模块 yum install -y gcc g++ gcc-c++ zlib zlib-devel openssl openssl-devel pcre pcre-devel wg ...