Python基本数据类型

在上一个分享的文章中,提到过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 开始。如下图:

人生苦短,一起学Python(六)Python基本数据类型

字符串也可以进行运算,如:

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 开始。

变量[头下标:尾下标]

人生苦短,一起学Python(六)Python基本数据类型

与字符串一样,列表同样也可以进行+和*,分别表示列表连接运算符和重复操作。如下实例:

实例:

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是非常友好的,很适合初学者进行学习。本节分享这些,希望对你的学习有所帮助。


觉得不错请点赞哦

发表评论