python基础学习——第二天

时间:2021-02-08 20:52:48

    一.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 拼接方式python基础学习——第二天python基础学习——第二天
 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

 

python基础学习——第二天python基础学习——第二天
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给我们提供了多种字符串拼接方式,但是第三者方式拼接时运用时,系统会为其开辟多个空间存储数据,浪费系统资源,而前两者只需开辟两块内存空间,动态存取数据,有效的减少资源的浪费