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

转载于:https://www.cnblogs.com/gzz041/p/7062362.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值