——数据类型——
(一)数字:
(1)int(整型)
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647。在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807。
(2)long(长整型)
跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
说明两点:
1.自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。
2.Python3把长整型去掉了,只有整型(int)。
(3)float(浮点型)
浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。
(小数包含浮点数)
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10^(-4)。
附图:
(4)complex(复数)
复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。(-5+4j)和(2.3-4.6j)都是复数的例子。
(二)布尔值:
真(True)或假(False) 1 或 0
注意与命令是否正确执行的返回码区分开:
布尔逻辑:真为1,假为0;
命令执行的返回值:正确执行为0,错误执行为1。
——三元运算——
三元运算的基本规则为:result=值1 if 条件 else 值2
如果条件为真:result = 值1 ;
如果条件为假:result = 值2 。
结构如下:
假设现需取两者中的较大的值,则如下:
若是不利用三元运算,则程序如下:
——进制——
二进制:0 1
八进制:0 1 2 3 4 5 6 7
十进制:0 1 2 3 4 5 6 7 8 9
十六进制:0 1 2 3 4 5 6 7 8 9 A B C D E F
16进制与10进制之间的对应关系:
0 1 2 3 4 5 6 7 8 9 A B C D E F 分别代表:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
16进制与2进制的对应关系:
0(0000) 1(0001) 2 (0010) 3(0011)
4(0100) 5(0101) 6(0110) 7(0111)
8(1000) 9(1001) A(1010) B(1011)
C(1100) D(1101) E(1110) F(1111)
2进制转换成16进制的方法是:
取四合一法,即从二进制的小数点为分界点,向左或者向右每四位取成一位。组分好以后,对照2进制与16进制之间的对应关系表,将四位二进制按权相加,得到的数就是一位16进制数,然后按顺序排列,小数点的位置保持不变,得到的就是16进制数。
举例:101110011011.1001
1011 1001 1011 . 1001 = B9B.9
16进制的表示方法:
①后缀表示法,用字母H后缀表示。
举例:BH = (11)16
②前缀表示法,用0X前缀表示。
举例:0X53 = (53)16 = 5*16+3*1
需要注意一点的是,在向左或者向右取四位时,取到最高位或者最低位,如果凑不足四位时,就可以在小数点的最左边或者最右边补0,进行换算。
举例:10111.011 = 0001 0111 . 0110 = (17.6)16
16进制转为2进制:
一分四法,即一个16进制数转换为4个二进制数,用四位二进制按权相加,小数点的位置保持不变,就可以得到二进制数。
举例:BF4.B5 = 1011 1111 0100 . 1011 0101 =( 101111110100.10110101)2
——数据类型:bytes类型——
在Python2中,不区分字节和字符串类型。
在Python 3中最重要的新特性可能就是将文本(text)和二进制数据(视频、音频)做了更清晰的区分。
文本总是用Unicode进行编码,以str类型表示;而二进制数据以bytes类型表示。
Python3不会以任意隐式的方式混用str和bytes。
所以,不能拼接字符串和字节包,也不能在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。
一个文本文件既可以用字符串类型进行表示,也可以用字节包的类型进行表示,并且这两种表示形式之间可以互相转换。转换关系如下:
二进制数据类型通过解码可以转换成字符串类型, 字符串类型通过编码可以转换成二进制数据类型。
必须将字符串类型转换成二进制数据类型的情况:通过网络传输数据。
在Python2中可以以字符串的类型传输数据,但是,在Python3中传输的数据类型必须是二进制数据!
在.encode()和.decode()中,最好是声明所用编码,Python3下如果不声明就默认用“utf-8”。
开头是b,说明转换为二进制数据类型。
网友评论