在上一个分享的文章中,提到过Python的标准数据类型。Python3 中有六个标准的数据类型:
- (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]=888
print (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完整的字典
以上实例输出结果:
小明
我学Python
dict_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是非常友好的,很适合初学者进行学习。本节分享这些,希望对你的学习有所帮助。
觉得不错请点赞哦