“专业人士笔记”系列目录:
创帆云:Python成为专业人士笔记--强烈建议收藏!每日持续更新!内置数据类型:
bool类型值
俗称布尔值,只有真(True)或假(False)两个值, 像and、or、not这样的逻辑操作可以在布尔值上执行
x or y #如果X和y中有一个是True,则整体是True
x and y #只有x和y 都为True的时候,整体才是True
not x # x是False的时候,整体是True
在Python中2和python3中,bool类型是int类型的一个子类,True和False是它唯一的实例
如果在算术运算中使用布尔值,它们的整数值(True为1,False为0)将被用来返回整数结果
比如:
True + False==1 # 类似 1 + 0 == 1
True * True==1 # 类似 1 * 1 == 1
Numbers 数值类型
1、int 整数型
a =2 #给整数赋值
b =100
Python中的整数是任意大小的; 注意: 在旧版本的Python中,long类型是可用的,这与int不同,两者是统一的
2、float 浮点小数型
支持e这样的科学计数法
a =2.0
b =100.e0
c =123456789.e1
3、 complex 复数
a =2 + 1j
b =100 + 10j
注意:当任何操作数是复数时,操作符<、<=、>和>=将引发类型错误异常
4、 Strings 字符串类型
a) str类型: 一个unicode字符串,值为“hello”的类型
b) byte类型:字节字符串,值为b’hello’的类型;注意字串前面有一个字母’b’
序列和集合 数据类型
Python区分有序序列和无序集合(如set和dict):
1、有序序列
a)字符串(str,byte,unicode)是有序序列 ,如用 reversed函数将字符串反转排序后,和之前的值完全不一样
b) tuple元组: 任何类型的n个值的有序集合(n >=0)
如:a =(1,2,3) 和 b=(2,1,3)是两个不一样的元组
c)list列表: n个值的有序列表
如 a=[1,2,3]和b=[1,2,3]是两个不一样的列表
2、无序集合
a) set 集合:无序的值集合(不能有重复值)
如: a ={1,2,’a’} ,和 b={‘a’,2,1}是一样的集合,且集合中不可能有同一个值出现2次
b) dict 字典: 唯一键值对的无序集合
如: g ={‘a’: ‘1’,’b’:’2′} 存储的是键值对,访问方式是: print(g[“a’]),会输出值1
内建常量
与内置的数据类型一起,在内置的命名空间中有少量的内置常量
True:内置类型的布尔值的真值
False:内置类型的布尔值的假值
None:用于表示不存在的单例对象或空值
Ellipsis 或…:在核心Python3 +中不受限制地使用,在Python2.7 +中作为数组表示法的一部分受到限制使用。numpy和相关软件包将其用作数组中的“包括所有内容”引用
NotImplemented: 用于向Python表明某个特殊方法不支持特定参数,如果启用,Python将尝试替代方法
验证变量的类型
在python中,我们可以使用内置的函数类型检查对象的数据类型
a ='123'
print(type(a))
# 输出: <class 'str'>
b =123
print(type(b))
# 输出: <class 'int'>
可以使用isinstance返回数据类型,通常用在条件if语句判断中:
i =7
if isinstance(i,int):
i +=1
elif isinstance(i,str):
i =int(i)
i +=1
#判断如果是整数int类型则+1,是字符串str类型则先转为int型再+1
判断变量是否为None的数据类型,稍微有点特殊,如下:
x =None
if x is None:
print('数据类型是None')
变量的类型转化
可以执行显式数据类型转换。例如,’123’是str类型的,它可以使用int函数转换为整数。
a ='123'
b =int(a)
可以使用float函数从浮点字符串(如’123.456′)进行转换
a ='123.456'
b =float(a)
还可以转换序列或集合类型
a ='hello'
list(a)
# ['h', 'e', 'l', 'l', 'o']
set(a)
# {'o', 'e', 'l', 'h'}
tuple(a)
# ('h', 'e', 'l', 'l', 'o')
在定义变量时可显式的指定string字串的子类型
可以 在引号前面加一个字母标签,定义具体是什么类型的字符串
b’foo bar’: 在python3中返回 byte型,在python2中返回 str 型
u’foo bar’ : 在python3中返回 str型,在python2中返回 unicode 型
‘foo bar’ : 都返回 str型
r’foo bar’: 原始字符串,其中无需转义特殊字符,键入时一切都按原样
可变和不可变的数据类型
如果一个对象可以改变值,那么它就叫做可变数据类型。
例如,当你将一个列表传递给某个函数时,该列表可以被函数内的代码改变
def f(m):
m.append(3) # 向列表中添加一个数字。这是一个修改.
x = [1, 2]
f(x)
x == [1, 2] # 现在为False,因为列表中添加了一个项
如果对象不能以任何方式更改,则称其为不可变的。例如,整数是不可变的,因为没有办法改变它们
def bar():
x = (1, 2)
g(x)
x == (1, 2) # 总是返回真 True,因为没有函数可以改变对象 (1, 2)
注意,变量本身是可变的,所以我们可以重新分配变量x,但这不会改变x之前指向的对象。它只是让x指向了一个新对象。
实例是可变的数据类型称为可变数据类型,对于不可变对象和数据类型也是如此
不可变数据类型的例子
int, long, float, complex
str
bytes
tuple
frozenset
可变数据类型的例子
bytearray
list
set
dict
关于python数据类型分享到这里,转载请注明出处,违者必究