这是我参与11月更文挑战的4天,活动详情查看:2021最后一次更文挑战。
在python这门语言中,数据类型分为两种:
内置:数字、字符串、布尔、列表、元组、字典、Bytes、集合这些常用的以及一些不太常用的数据类型。自定义:一般以类的形式,根据需要组合以上内置类型成为独特的数据类型。
数字类型
数字类型是不可变类型。类型的值一旦有不同,那么它就是一个全新的对象。例如:
- 数字1和2分别代表两个不同的对象,对变量重新赋值一个数字类型,会新建一个数字对象。
还是要强调一下Python的变量和数据类型的关系,变量只是对某个对象的引用或者说代号、名字、调用等等,变量本身没有数据类型的概念:
- 只有
1,[1,2],"hello"这一类对象才具有数据类型的概念。
Python支持三种不同的数字类型:
- 整数
- 浮点数
- 复数
小整数对象池
python初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成。范围是-5到256。
整数缓冲区
除了小整数对象池,Python还有整数缓冲区的概念,也就是刚被删除的整数,不会被真正立刻删除回收,而是在后台缓冲一段时间,等待下一次的可能调用:
a = 100000
print(id(a))
del a
b = 100000
print(id(b))
3028842491600
3028842491600
⚠️注意: 该效果在pycharm等当中才能显示。
进制转换
>>> hex(11) # 10转16
'0xb'
>>> oct(11) # 10转8
'0o13'
>>> bin(11) # 10转2
'0b1011'
浮点数与整数之间的转换
>>> a = 1
>>> float(a) # 整数转为浮点
1.0
>>> b = 2.2
>>> int(b) # 浮点转为整数
2
复数(complex)
复数由实数部分和虚数部分构成,可以用a + bj or complex(a,b)表示,复数的实部a和虚部b都是浮点:
>>> a = 1
>>> b = 2
>>> complex(a,b) # a为实数部分,b为虚数部分
(1+2j)
布尔类型
在Python语言中,布尔类型只有两个值,True与False(首字母大写)。
bool()函数可以用来测试一个表达式的布尔值结果:
>>> bool(1)
True
>>> bool(0)
False
>>> bool([])
False
>>> bool(())
False
>>> bool({})
False
>>> bool(-1)
True
>>> bool('')
False
>>> bool("False")
True
>>> bool("True")
True
>>> bool(0.0)
False
>>> bool(1.0)
True
>>> bool(-0.0)
False
⚠️注意:
not运算是非运算,它是单目运算符,把True变成False,False变成True。and运算是与运算,只有所有都为True,and运算的结果才是True。or运算是或运算,只要其中有一个为True,or运算结果就是True。空值是Python里一个特殊的值,用None表示(首字母大写)。None不能理解为0,因为0是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType:
>>> bool(None) # None的bool值永远为False
False
>>> type(None)
<class 'NoneType'>