python -- 数据类型

python -- 数据类型

数字

  1. int 整型,在python3中已经没有长整型的概念,在python2中还有长整型。
在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1。
在64位机器上,整数的位数为64位,取值范围为-2**64~2**64-1。
这就是为什么32位机器只支持4g内存。
  1. long 长整型,在ppython2中存在。
  2. float 浮点型,浮点数用来处理实数,即带有小数的数字。
  3. complex 复数,复数是由实数部分和虚数部分组成。

布尔值

真或假

True or False

1或0

a = 0
b = 1
if a:  # 只有当a为True的时候才会打印下面的代码,由于a=0,所以这句代码不执行
    print("False")
if b:  #同理,由于b=1,b=True,所以这句代码执行
    print("True")

字符串

万恶的字符串拼接
python中字符串在C语言中体现为一个字符数组,每次创建字符串时候需要在内存里开辟一块连续的空间,并且一旦需要修改字符串的话,就需要再再次开辟空间。万恶的+号每出现一次就会在内从中重新开辟一块空间。

操作符

操作符 描述 实例 类型
& 按位与运算 位运算
| 按位或运算
^ 按位异或运算
~ 按位取反运算
<< 左移动运算符
>> 右移动运算符
+ 算数运算
-
*
/
** 3 ** 3 = 9
// 取整除,返回商的整数部分 9 // 2 = 4 ;9.0 // 2.0 = 4.0
% 取模,返回除法的余数 9 % 2 = 1 ;9.0 % 2.0 = 1.0
< 小于 比较运算
> 大于
<= 小于等于
>= 大于等于
== 等于 返回值是布尔类型
!= 不等于 返回值是布尔类型
<> 不等于,等同于!= 返回值是布尔类型
()
[]
{}
@
'
:
= 简单的赋值运算符 赋值运算
;
+= 赋值运算
-=
*=
/=
//=
%=
**=
and 逻辑运算
or
not
in 返回值是布尔类型 成员运算
not in 返回值是布尔类型 成员运算
is 返回值是布尔类型 身份运算
a = 60  # 60 = 0011 1100
b = 13  # 60 = 0000 1101
c = 0  # 0 = 0000 0000
print(a & b)  # 12 = 0000 1100
print(a | b)  # 61 = 0011 1101
print(a ^ b)  # 49 = 0011 0001
print(a >> 2)  # 15 = 0000 1111 右移是在所有的在位置上的1或0统统右移2个单位
print(a << 2)  # 240 = 1111 0000
print(b >> 2)  # 3 = 0000 0011

bytes数据类型

Python3中将str(字符串)类型和二进制数据区分,二进制数据用bytes(字节包)类型表示。

Python3不再以任何隐式的方式混用str和bytes。所以str和bytes类型不能拼接,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦反)。

sequenceDiagram
String类型->>Bytes类型: encode(编码)
Bytes类型->>String类型:decode(解码)
# c 就是a的二进制格式
a = '我是好人'
b = 'I am a nice guy.'
c= b'\xe6\x88\x91\xe6\x98\xaf\xe5\xa5\xbd\xe4\xba\xba'
# 这里encoding告知系统原来用utf-8编译
print(a.encode(encoding='utf-8'))
print(b.encode())
# 这里encoding告知系统原来用utf-8解码
print(c.decode(encoding='utf-8'))

三元运算

result = 值1 if 条件 else 值 2

  • 如果条件为真:result = 值1
  • 如果条件为假:result = 值2
# 三元运算
a = 1
b = 3
c = 5
# if a > b,d = a,不然d = c
d = a if a > b else c
print(d)

进制

  • 二进制: 01
  • 八进制: 01234567
  • 十进制: 0123456789
  • 十六进制:0123456789ABCDEF

二进制转十六进制的方法

  1. 取4合1法,即从二进制的小数点为界点,向左(或向右),每4位取成一位。
  2. 组分成好,对应二进制与十六进制的对应表,将4位二进制按权相加,得到的数一个十六进制数,然后按顺序排列,小数点的位置不变!!
  3. 最后得到的就是一个十六进制数。
  4. 16进制的表示法,用字母H后缀表示,比如BH表示10进制的11,也可以用0X前缀表示,比如0X23就是16进制的23(10进制的35)。
  5. 如果最高位或最低位无法凑足4位,就用0补齐。

十六进制与二进制的对应关系
(每4位表示一个16位)

16进制 0 1 2 3
2进制 0000 0001 0010 0011
16进 4 5 6 7
2进制 0100 0101 0110 0111
16进制 8 9 A B
2进制 1000 1001 1010 1011
16进制 C D E F
2进制 1100 1101 1110 1111

写在后面

  • 计算机中能表示的最小单位,是一个二进制位
  • 计算机中能存储的最小单位,是一个二进制位(bit)
  • 8 bit = 1 byte(字节)
  • 1024 byte = 1 Kbyte
  • 1024 Kbyte = 1 Mbyte
  • 1024 Mbyte = 1 Gbyte
  • 1024 Gbyte = 1 Tbyte
posted @ 2017-06-22 00:22  gzz041  阅读(259)  评论(0编辑  收藏  举报