python学习笔记05:python数据类型&进制
数据类型
1、数字
int(整型):python3.x中,无论存多大,都是普通的整型,没有长整型一说。
float(浮点型):浮点的表现形式是小数。
- 3.23和52.3E是浮点数的例子。E标记表示10的幂。在这里,52.3E表示52.3** 10
- (-5+4j)和(2.3-4.6j)是复数的例子。其中-5,4是实数,j为虚数
2、布尔值
真或假:True或False
1或0
3、字符串和bytes类型(字节)
字符串和bytes类型(字节)为两种数据类型。
python 3最重要的新特性是对文本和二进制数据做了更清晰的区分。文本总是Unicode,由str类型表示(Unicode是一种字符编码方案,它为每种语言中的每个字符都设定了统一唯一的二进制编码);二进制数据则由bytes类型表示。python3不会任何隐性的方式混用str和bytes。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然),字符串可以编码成字节包,而字节包可以解码成字符串,即不同的码可以相互转换。
字符串=>二进制,需要encode(编码),如下图中例1。
二进制=>字符串,需要decode(解码),如下图中例2。
encode()中若不定义目标编码类型,python3中默认目标编码类型是bytes数据类型
如图中的例1指的是,通过encode,将utf-8格式的’€20’字符串,编码成二进制形式,表现为由b打头的b’\xe2\x82\xac20’;反之,通过decode(解码),将二进制b’\xe2\x82\xac20’,解码为utf-8格式字符串,结果为’€20’。
- str字符串与bytes二进制转化的举例:
字符串=>二进制:encode(encoding(utf-8))===>encoding中写原字符串的unicode格式类型
二进制=>字符串:decode(encoding(utf-8))===>encoding中写转化后字符串的unicode格式类型
复习总结:
三元运算
- result = 值1 if 条件 else 值2
如果条件为真:result = 值1
如果条件为假:result = 值2
例:
如果if后的条件为真,则返回“d=a”;
反之,条件为假,则返回“c”。
进制
二进制:01(通过0、1表示数)
八进制:01234567
十进制:0123456789
十六进制:0123456789ABCDEF 其中,A代表10,B代表11,C代表12,D代表13,E代表14,F代表15
- 16进制数与二进制数对应关系:
数 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2进制 | 0000 | 0001 | 0010 | 0011 | 0100 | 0101 | 0110 | 0111 | 1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
16进制 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F |
二进制数之所以4个数代替一个16进制数,是因为,2进制数4位数最大可代表15。也就是可以将16进制数都表示完。
进制的转化
16进制数的表示方法:
如0X53、BH。其中,0X是16进制的前缀,H是16进制的后缀。
那0X53,忽略前缀,则指的是16进制的53;B H ,忽略后缀,则指的是16进制的11,因为16进制中,B代表11。
2进制数转化为16进制数:
进制 | 举例 | 原则 | 补0后 | 结果 |
---|---|---|---|---|
2进制数 | 10111.011 | 符号向左向右有不够4位的情况,则补0 | 0001 0111.0110 | - |
16进制数 | - | - | 1 7.6 | 17.6 |
16进制数转化为2进制数:
进制 | 举例 |
---|---|
16进制数 | BF4.B5 |
2进制数 | 1011 1111 0100.1011 0101 |