一.python种类
1.1 Cpython
python官方版本,使用c语言实现,运行机制:先编译,py(源码文件)->pyc(字节码文件),最终执行时先将字节码转换成机器码,然后交给cpu执行;
如果再次运行时,会优先寻找字节码文件,若源码文件被修改,则会再次编译成字节码
1.2 Jython
Python语言的Java实现,不仅提供Python的库,同时也提供所有的Java类。能运行在任何可兼容的Java1.1或更高的Java虚拟机平台上。
运行机制:py(源文件)->动态编译成字节码(Java字节码)->然后在JVM中执行
由于最终执行会编译成java字节码,所以对Java类无缝存取,对于与Java语言的交互效率极高
1.3 IronPython
Python语言的c#实现,由Jython的创始人创造
运行机制:源码文件->C#字节码->CLR(公共语言运行库)与(JVM类似)
1.4 PyPy
rPython实现的Python,rPython是Python的一个子集,Python语言的动态编译器,它使用的是JIT(及时编译器),
运行机制:先编译 源码文件->字节码->机器码,然后直接由cpu执行
1.5 各版本总结
pypy与其他版本对比,编译过程相对慢,但是执行效率是最高的,因为它是编译成机器码,cpu可以直接执行机器码,
其他语言都需要再转换成机器码,然后交由cpu执行
二.传递参数
2.1新建python文件,名为hello_args.py,输入下面的代码
1 import sys
2 print(sys.argv)
通过python hello_args.py,屏幕打印输出
['hello_args.py']
python hello_args.py hello world屏幕打印输出
['hello_args.py', 'hello', 'world']
默认文件名本身则是argv[0],属于第一个参数
如果要使用用户传递的参数,可以通过下标方式获取,操作方法与列表操作方法一样
三. 内容编码
3.1 针对2.x版本
python解释器加载py文件时,会对内容进行编码(默认ascii)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,
主要用于显示现代英语和其他西欧语言。它是现今最通用的单字节编码系统,并等同于国际标准ISO/IEC 646。
在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0)
ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符。标准ASCII 码也叫基础ASCII码,使用7 位二进制数来
表示所有的大写和小写字母,数字0 到9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),
如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(响铃)等;
通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;
ASCII值为8、9、10 和13 分别转换为退格、制表、换行和回车字符。
它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32是空格),
其中48~57为0到9十个阿拉伯数字。
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.3 扩展 ASCII
扩展ASCII 字符是从128 到255(0x80-0xff)的字符。扩展ASCII不再是国际标准。
3.4 汉字编码
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.1 拼接方式
1 name = 'hello'
2 print("%s world" % name) #将会输出hello world
3
4 # 第二种拼接方式
5 print("{name} world".format(name = name))
6 # 打印输出 hello world
7 # 前面这个name相当于一个占位符,第二个name即占位符的名称,第三个name则是上面定义的name变量名
8
9 # 第三种方式
10 print(name + " world") # 打印输出结果与上面一样,
View Code
1 # 很有一种方式类似于c#方式占位符
2 name = "hello"
3
4 print("{0} world".format(name))
5
6 # 打印输出结果与上面相同,也是hello world
7
8 print("{0} world,{1}".format(name,"I like python"))
补充
虽然python给我们提供了多种字符串拼接方式,但是第三者方式拼接时运用时,系统会为其开辟多个空间存储数据,浪费系统资源,而前两者只需开辟两块内存空间,动态存取数据,有效的减少资源的浪费