2021-08-02

python数据类型

python有6种数据类型:

  • Number (数字)
  • String (字符串)
  • List (列表)
  • Tuple (元组)
  • Dictionary(字典)
  • Sets(集合)

一、Number(数字)

① int
② float
③ bool
④ complex
⑤ 特殊类型 NoneType

1.int(有符号整型)

整型/整数,可以为正整数或负整数

可用 2、8、10、16 进制表示,默认为10进制

下面以10进制 42 举例:
2 进制:’ 0b101010 ’ 以’ 0b ‘开头
8 进制:’ 0o52 ’ 以’ 0o ‘开头
10 进制:’ 42 ’
16 进制:’ 0x2a ’ 以’ 0x '开头

进制转换:
bin(a):将a转换为2进制
oct(a):将a转换为8进制
int(a):将a转换为10进制
hex(a):将a转换为16进制

>>>a=42
>>>b=0x33
   print(bin(a))  #转为2进制
   print(oct(a))  #转为8进制
   print(hex(a))  #转为16进制
   print(int(b))  #转为10进制
	
	
0b101010
0o52
0x2a
51
注意:
    在python2中整型是有限制的
    在32位机器上,整数的位数为32位,取值范围为-2*31~2**31-1,即-2147483648~214748364
    在64位系统上,整数的位数为64位,取值范围为-2**63~2*63-1,即-9223372036854775808~9223372036854775807
    
    如果超出这个范围,int整型发生溢出,Python会自动将整数数据转换为long(长整型)
    Python的长整数没有指定位宽,即Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大
    
    在python3里不再用long类型,全部都是int

2.float(浮点型)
有限小数和无线循环小数
浮点型可以使用科学计数法表示(1.5e3 = 1.5 x10^3 = 1500.0)

>>>a=1.5e3
   print(a)
   print(type(a))


1500.0
<class 'float'>

3.bool(布尔型)
布尔类型仅有两个取值,True或者False,在python中必须首字母大写,它们具有相同的实例地址

>>>a = 1 == 1
>>>b = True
   print(type(a))
   print(type(b))
   print(id(a))
   print(id(b))
   print(id(True))


<class 'bool'>
<class 'bool'>
140711326882128
140711326882128
140711326882128

布尔类型是int型的一个子类,由0,1代表,即:“True”=1,“False”=0

>>>print(True == 1) 
   print(False == 0) 


True
True

虽然True代表1,False代表0。但实际上,python中的任何一个数据对象要么是True,要么是False,可以直接在布尔测试的表达式中使用,并非一定要去大小比较

>>>if a:
       print('haha')
    

haha

bool值和int值可以进行简单的计算

>>>print(True + 1)
   print(True * 2)
   print(False + 1)
   print(False * 2)


2
2
1
0

在python中,数值0(int,float,complex)、空字符串 ’ ’ 、空列表 [ ] 、空元组 () 、空字典 { } 、None ,在判断真假时,将被判断为False

>>>bool(0) , bool(0.0) , bool(0.0+0.0j) , bool(None) , bool('') , bool([]) , bool(()) , bool({})


(False, False, False, False, False, False, False, False)

除上列值以外的对象的布尔值都是True

注意:
1.元组的括号和逗号的特殊性, ('')、([])、({})、(None)、(0) 虽然带()但并不是元组,加上逗号才是
>>>b=('') ;  c=([])  ;  d=({})  ;  e=(None)  ;  f=(0)
>>>B=('',)  ;  C=([],)  ;  D=({},)  ;  E=(None,)  ;  F=(0,)
   print(type(b),type(c),type(d),type(e),type(f))
   print(type(B),type(C),type(D),type(E),type(F))


<class 'str'> <class 'list'> <class 'dict'> <class 'NoneType'> <class 'int'>
<class 'tuple'> <class 'tuple'> <class 'tuple'> <class 'tuple'> <class 'tuple'>
所以,使用括号包围但却不是元组的数据,如果它们是假,则整个返回假
>>>b=('') ;  c=([])  ;  d=({})  ;  e=(None)  ;  f=(0)  ;  g=(1)
>>>B=('',)  ;  C=([],)  ;  D=({},)  ;  E=(None,)  ;  F=(0,)  ;  G=(1,)
   print(bool(b),bool(c),bool(d),bool(e),bool(f),bool(g))
   print(bool(B),bool(C),bool(D),bool(E),bool(F),bool(G))


False False False False False True
True True True True True True

4.complex(复数)
复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型

>>>n=1+2j
>>>m=complex(1,-2)
   print(n,type(n))
   print(m,type(m))


(1+2j) <class 'complex'>
(1-2j) <class 'complex'>

5.特殊类型 NoneType
NoneType类型只有一个值None

>>>type(None)

<class 'NoneType'>

None不支持任何运算也没有任何内建方法

>>>print(1+None)

TypeError: unsupported operand type(s) for +: 'int' and 'NoneType'

None和任何其他的数据类型比较永远返回False

>>>if None:
    print('haha')

结果:无打印

None不是表示对象为空,也不是表示对象未定义。它自身就是一个实实在在的数据对象,在内存中有自己的内存地址,而且整个python全局只有一个唯一的None对象。可以认为,None是一种特殊的数据对象,像数值1、123、字符串’a’、'abc’一样,只不过内存中这个数据对象里面存储的数据是我们不得而知的,但它永远表示为False

>>>a=None
   print(id(a))
   print(id(None))

140711326928096
140711326928096

你可以将None复制给任何变量,但是你不能创建其他 NoneType 对象
None在Python解释器启动时自动创建,解释器退出时销毁

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值