在上一个分享的文章中,提到过
(1)Number(数字)
(2)String(字符串)
(3)List(列表)
(4)Dictionary(字典)
(5)Tuple(元组)
(6)Set(集合)
其中:不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
本节重点介绍这几种数据类型的定义以及它们之间的联系与区别。
在开始介绍数据类型之前,我们需要了解下变量的赋值。与Java、C等主流的编程语言一样,对变量的赋值都是采用数学上的“=”进行。如:
1 name = “zhang” #表示对变量name进行赋值“zhang”
2 age = 18 #表示对变量age进行赋值18
一、Number(数字)
在Python3 中支持 int(整数类)、float(浮点类)、bool(布尔值)、complex(复数)。
在Python 3里,去掉了Python2 中的 Long(长整型),只有一种整数类型 int,表示为长整型。
Python中内置的 type() 函数,可以用来查看变量的对象类型。
与Java等编程语言一样,很方便和直观对数值类型进行赋值和计算。
注意:complex(复数),Python中的复数,如同我们在高中时学的复数一样,由实数部分和虚数部分构成,可以用a + bj 或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
数值类型实例
int
float
bool
complex
10
10.20
1(True)
2.79j
-387
-22.73
87j
060
2.3e+8
0(False)
.783j
-0x260
-10.5e100
-.76e+5j
二、String(字符串)
如同Java、C等编程语言一样,Python中的字符串使用单引号‘ ‘或双引号” “括起来,在定义字符串变量时,直接使用赋值符号=,进行定义及赋值。对于存在特殊字符的字符串,可以使用反斜杠转义特殊字符。
1、字符串的定义及赋值
a = "You're a good man." #这就完成了对变量的定义与赋值。
2、字符串的取值
字符串中的每个字符都要自己的索引值,就可以用所对应的索引值进行对字符串取值。字符串的截取的语法格式如下:
变量[头下标:尾下标]#注:截取范围是头下标对应字符到尾下标对应字符前一个字符,即类似于数学上的“左闭右开”a = "zhangsan" #定义变量并赋值print(a[0:6]) #输出结果为“zhang”
索引值以 0 为开始值,从左向右(正向)取值从0开始,从右向左(末尾)取值从-1 开始。如下图:
字符串也可以进行运算,如:
a="You'rea"b="goodman."c= a + b # c的结果为“You're a good man.” ,表示字符串的拼接a="zhang"c=a*3 #c的结果为“zhangzhangzhang”表示复制当前字符串,紧跟的数字为复制的次数
三、List(列表)
List(列表) 是 Python 中使用最频繁的数据类型。它可以完成大多数集合类的数据结构实现。
列表中的元素类型可以不一样,可以是数字,也可以是字符串,甚至可以是列表等类型(所谓嵌套)。
列表是写在方括号[]之间、用逗号分隔开的元素列表,格式如下:
list1 = [element1, element2, element3, ... , elementN ] #列表定义
列表截取的语法格式如下:与字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。从左到右索引默认 0 开始,从右到左索引默认 -1 开始。
变量[头下标:尾下标]
与字符串一样,列表同样也可以进行+和*,分别表示列表连接运算符和重复操作。如下实例:
实例:
list1=['abcd',123,3.14,'good',77.68]list2=[456,'nice']print(list1)#输出完整列表print(list1[:])#与上面一样,输出完整列表print(list1[3])#输出列表第一个元素print(list1[0:3])#从第二个开始输出到第三个元素print(list1[3:])#输出从第三个元素开始的所有元素print(list1+list2)#连接列表print(list2*3)#输出三次列表
以上实例输出结果:
['abcd',123,3.14,'good',77.68]['abcd',123,3.14,'good',77.68]good['abcd',123,3.14]['good',77.68]['abcd',123,3.14,'good',77.68,456,'nice'][ 456, 'nice', 456, 'nice', 456, 'nice' ]
正像开篇提到的那样,List列表中的的元素是可以改变的。
采用上面的实例:
list1=['abcd',123,3.14,'good',77.68]list1[0]="nice"list1[2]=888print (list1) # 输出完整列表#结果为[ 'nice', 123 , 888, 'good', 77.68 ]
同时,List 中也内置了有很多方法操作列表,例如 append()、pop() 等等,很方便对列表的修改及删除。
小结:
1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+和*操作符进行拼接和复制。
4、List中的元素是可以改变的。
四、Dictionary(字典)
字典(Dictionary)是Python中另一个非常有用的内置数据类型。
字典是一种无序存储结构,由一对对的键值对组成,即包括关键字(key)和关键字对应的值(value)。
字典的格式为:dictionary = {key:value}。
关键字(key)必须是不可变类型,如字符串、整数、只包含不可变对象的元组,列表等可变对象不能作为关键字,并且在同一个字典中,键(key)必须是唯一的。
与列表不同,列表是有序的对象集合,而字典是无序的对象集合。两者之间的区别在于:字典当中的元素只能通过键(key)来存取的,而不是通过偏移存取。
实例:
dict1 = {}dict['name']="小明"dict[2]="我学Python"dict2={'name':'小鹏','age':18,'gender':'male'}print(dict1['name']) #输出键为'name'的值print(dict1[2]) #输出键为2的值print(dict2.keys())#输出dict2所有键print(dict2.values()) #输出dict2所有值print (dict2) # 输出dict2完整的字典
以上实例输出结果:
小明我学Pythondict_keys(['name', 'age', 'gender'])dict_values(['小鹏',18 ,'male']){'name': '小鹏','age':18 , 'gender': 'male'}
字典类型也有一些内置的函数,例如clear()、keys()、values()等。
小结:
1、字典是一种映射类型,它的元素是键值对。
2、字典的关键字必须为不可变类型,且不能重复。
3、创建空字典使用{ }。
五、Tuple(元组)
元组(Tuple)是和列表(List)相似的数据结构,只是元组一旦被定义就不能更改。元组是写在小括号()中的,元素直接用逗号(,)隔开,元组中的元素类型也可以不相同。
元组的创建如果给予定义了里面的多个值,可以像列表那样去写,但是如果创建的是一个元素的元组,需要在小括号中加一个逗号(,),用来和单独的变量相区分。
元组与字符串、列表类似,可以被索引,也可以进行截取,它们的下标都是一样的。
实例:
tuple=() #创建了一个空的元组tuple0=('abc',)#创建了只有一个元素的元组tuple1 = ( 'abcd', 123 , 3.14, 'good', 77.68 )tuple2 = ( 456, 'nice' )print (tuple1) # 输出tuple1完整元组print(tuple1[2]) #输出tuple1元组的第一个元素print(tuple1[1:4])#输出tuple1从第二个元素开始到第三个元素print (tuple1[1:]) # 输出tuple1从第三个元素开始的所有元素print(tuple1+tuple2)#连接tuple1和tuple2元组print(tuple2*2) #输出tuple2两次元组
以上实例输出结果:
( 'abcd', 123 , 3.14, 'good', 77.68 )3.14(123,3.14,'good')( 123 , 3.14, 'good', 77.68 )('abcd',123,3.14,'good',77.68,456,'nice')(456,'nice',456,'nice')
小结:
1、String、List 和 Tuple 都属于 sequence(序列)。
2、与字符串一样,元组的元素不能修改。
3、元组也可以被索引和切片,方法一样。
4、元组也可以使用+和*操作符进行拼接。
5、注意构造多个元素和 1 个元素的元组的特殊语法规则。
六、Set(集合)
Set(集合)也是Python中常用的一种数据类型。
集合是无序的,不重复的元素集,是由一个或数个形态各异的大小整体组成的。类似数学中的集合,可进行逻辑运算和算术运算。可以用来进行成员关系测试和删除重复元素。
集合可以使用大括号{ }或者 set()函数创建集合。但是,创建一个空集合必须用 set()而不是{ }。因为{ }是用来创建一个空字典。
创建格式:
set1={value1,value2,...}#或者set2 = set(value)
实例:
fruits={'apple','banana','orange','pear'}print(student) # 输出集合,重复的元素被自动去掉# 成员测试if'pear'infruits:print('pear在集合中')else:print('pear不在集合中')#set可以进行集合运算set1=set('banana')set2 =set('apple')print(a)print(a-b)#a和b的差集print(a|b)#a和b的并集print(a&b)#a和b的交集print(a ^ b) # a 和 b 中不同时存在的元素
以上实例输出结果:
{'apple', 'banana', 'orange', 'pear'}pear 在集合中{'b','p', 'l', 'e' }{'b', 'a', 'n', 'p', 'l', 'e' }{ 'a' }{'b', 'n', 'p', 'l', 'e' }
七、Python数据类型转换
Python提供了6种标准数据类型,但是它们之间有些数据类型是可以相互转换的,Python也提供了相应的内置函数。
以下几个常用的进行数据类型转换的内置的函数。调用这些函数后,将返回一个新的对象,表示转换后的数据。
函数
含义
int(x [,base])
将x转换为一个整数
float(x)
将x转换到一个浮点数
complex(real [,imag])
创建一个复数
str(x)
将对象 x 转换为字符串
repr(x)
将对象 x 转换为表达式字符串
eval(str)
用来计算在字符串中的有效Python表达式,并返回一个对象
list(s)
将序列 s 转换为一个列表
tuple(s)
将序列 s 转换为一个元组
dict(d)
创建一个字典。d 必须是一个 (key, value)元组序列
set(s)
转换为可变集合
frozenset(s)
转换为不可变集合
chr(x)
将一个整数转换为一个字符
ord(x)
将一个字符转换为它的整数值
hex(x)
将一个整数转换为一个十六进制字符串
oct(x)
将一个整数转换为一个八进制字符串
总结
Python提供了较为合理的数据类型,对于初学者,使用这6种标准数据类型是很容易的,不像Java、C等数据类型细分较多,尤其Number(数字)类,很难理解其中的差别。Python是非常友好的,很适合初学者进行学习。本节分享这些,希望对你的学习有所帮助。
觉得不错请点赞哦
原创文章,作者:霜天,如若转载,请注明出处:/4b271bdd89.html