3.1 Python基本数据类型
Python程序共包含6种基本数据类型,分别是数值(number)、字符串(string)、列表(list)、元组(tuple)、字典(dictionary)、集合(set)。要想编写能实现各种功能的程序,我们首先要知道如何使用这些基本的数据类型。
3.1.1 数值
我们可以简单地将数值认为是数学中的数字。在Python 3中,数值类型又可以细分为以下3种。
●int:带符号整数,例如3、101、−5。
●float:浮点数,可以理解为实数,例如5.5、9.0。
●complex:复数。
接下来,我们通过命令行来看一些数值运算。
>>> 3+4 # 加法 7 >>> 66-1 # 减法 65 >>> 3*8 # 乘法 24 >>> 6/2 # 除法 3.0 >>> 19%5 # 求余 4 >>> 19//3 # 取模 6 >>> 5**2 # 平方 25
除此之外,Python还有一个math模块,支持复杂的数学运算,我们来看几个简单的示例。
>> import math # 需要导入math模块 >>> abs(-3) # 求绝对值 3 >>> math.ceil(4.3) # 向上取整 5 >>> math.floor(4.3) # 向下取整 4 >>> max(1,2,3) # 取最大数 3 >>> min(1,2,3) # 取最小数 1 >>> pow(2,3) # 求幂 8 >>> math.sqrt(9) # 求平方根 3.0 >>>
至此,我们已经掌握了数值数据类型的基本用法。
3.1.2 字符串
字符串是个比较特殊的数据类型。除了常见的“Storm”“中国”以外,被双引号或单引号(英文状态下)引起来的数据都是字符串,例如"1""['a']"等。接下来,我们通过代码来看一下字符串常见的操作。
>>> 'Storm'.upper() # 将字母转换成大写字母 'STORM' >>> 'Storm'.lower() # 将字母转换成小写字母 'storm' >>> 'Hi storm'.title() # 将每个单词的首字母转换成大写字母 'Hi Storm' >>> 'Hi storm'.swapcase() # 将字母大小写反转 'hI STORM' >>> '123'.isdigit() # 判断字符串是否全为数字 True >>> 'storm'.isalpha() # 判断字符串是不是全是字母 True >>> 'hello storm'.count('o') # 返回括号中的字符在字符串中出现的次数 2 >>> 'Hi Storm'.startswith('Hi') # 判断前面的字符串是不是以括号中的字符串开头,返回布尔值 True >>> 'Hi Storm'.endswith('rm') # 判断前面的字符串是不是以括号中的字符串结尾,返回布尔值 True >>> 'Hi' in 'Hi Storm' # 判断前面的字符串是不是包含在后面的字符串中,区分大小写,返回布尔值 True >>> 'Hi Storm'.replace('Hi', 'Hello') # 把字符串中的“Hi”替换为“Hello” 'Hello Storm' >>> 'Hi,Storm,Hello'.split(',') # 以括号中的字符来切分前面的字符串,返回一个列表 ['Hi', 'Storm', 'Hello'] >>> ' Hi Storm '.strip() # 去除字符串前后的空格,中间的空格不去除 'Hi Storm' >>> 'Hi' + 'Storm' # 通过加号连接字符串 'HiStorm' >>> 'Storm'*3 # 通过乘法生成重复字符串 'StormStormStorm'
3.1.3 列表
列表是一种非常重要和常见的数据类型。它是一种“有序的集合”,我们可以对其进行增、删、改、查等操作。下面通过代码来学习列表的常见用法。
(1)定义列表
我们可以通过以下方式定义列表。
>>> hero = ['storm','sk','shadow'] # 直接用中括号来定义列表 >>> hero # 输出列表 ['storm', 'sk', 'shadow'] >>> mylist = list('storm') # 通过list将字符串转换成列表 >>> mylist # 输出列表 ['s', 't', 'o', 'r', 'm'] >>>
(2)查询列表元素
我们可以通过以下方式查询列表中的元素。
>> mylist = list('storm') >>> mylist # 输出列表 ['s', 't', 'o', 'r', 'm'] >>> mylist[0] # 通过下标获取列表元素,注意,下标从0开始 's' >>> mylist[0:2] # 切片,包括下标为0的元素,不包括下标为2的元素 ['s', 't'] >>> mylist[2:] # 切片,从下标为2的元素开始,一直到最后 ['o', 'r', 'm'] >>> mylist[:-1] # 切片,从下标为0的元素开始,不包括倒数第一个元素 ['s', 't', 'o', 'r']
(3)增加元素
我们可以通过以下方式为列表增加元素。
>>> mylist # 原始列表 ['s', 't', 'o', 'r', 'm'] >>> mylist.append('abc') # 通过append往列表的最后面追加一个元素 >>> mylist ['s', 't', 'o', 'r', 'm', 'abc'] >>> mylist.insert(0, 'hello') # 通过insert在指定下标的元素前面插入一个元素 >>> mylist ['hello', 's', 't', 'o', 'r', 'm', 'abc']
(4)删除元素
我们可以通过以下方式删除列表中的元素。
>>> mylist.pop() # 通过pop将列表的最后一个元素“弹”出来 'abc' >>> mylist ['hello', 's', 't', 'o', 'r', 'm'] >>> mylist.remove('hello') # 通过remove删除指定的元素 >>> mylist ['s', 't', 'o', 'r', 'm'] >>> del(mylist[0]) # 通过del关键字删除指定下标的元素 >>> mylist ['t', 'o', 'r', 'm']
(5)修改元素
另外,我们还可以修改列表中的元素,例如修改指定下标的元素、反转列表元素等,请见示例代码。
>>> mylist # 原始列表 ['s', 't', 'r', 'o', 'm'] >>> mylist[0] = 'S' # 修改指定下标的元素 >>> mylist ['S', 't', 'r', 'o', 'm'] >>> mylist.reverse() # 反转列表元素 >>> mylist ['m', 'o', 'r', 't', 'S'] >>> mylist.sort() # 按ASCII值排序,大写字符小于小写字符 >>> mylist ['S', 'm', 'o', 'r', 't']
(6)特殊操作
再来看几个列表的特殊操作。
>>> mylist # 原始列表 ['s', 't', 'r', 'o', 'm'] >>> len(mylist) # 通过len 获取列表长度 5 >>> max(mylist) # 通过max获取列表中最大的元素 't' >>> min(mylist) # 通过min获取列表中最小的元素 'm' >>> mylist.count('s') # 通过count统计括号中字符在列表中出现的次数 1
3.1.4 元组
元组也是一个有序的集合。它和列表最大的区别在于一旦初始化就不能修改。上一小节中我们所学列表的多数操作方法,同样适用于元组的操作,这里不再赘述。我们着重来介绍一下不同点。
>>> mytup = ('a', 'b' , 'c') #通过小括号定义元组 >>> mytup ('a', 'b', 'c') >>> mytup[0]='aaa' #尝试修改元素,报错 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> mytup2 = ('a') #如果想定义包含一个元素的元组,需要加个逗号,否则会变成字符串 >>> type(mytup2) #通过type可以查看元素类型 <class 'str'> >>> mytup3 = ('a',) #如果想定义包含一个元素的元组,需要加个逗号 >>> type(mytup3) <class 'tuple'>
3.1.5 字典
字典使用键-值对(key-value)存储。和列表相比,字典查找元素的速度更快,但字典的读取占用较多内存。下面通过代码来学习一下字典的增、删、改、查等操作。
(1)定义字典
我们来看一下在Python中如何定义字典。
>>> mydict = {} # 用大括号定义字典 >>> mydict {} >>> mydict1 = {'name':'storm', 'age':35}#一个键-值对是字典中的一个元素,键和值用冒号分隔 >>> mydict1 {'name': 'storm', 'age': 35} >>> type(mydict1) #通过type查看元素类型 <class 'dict'>
(2)查看字典元素
接下来,我们看一下在Python中如何查看字典中的键和值。
>>> mydict1 # 字典 {'name': 'storm', 'age': 35} >>> mydict1.keys() #通过keys获取字典中的键 dict_keys(['name', 'age']) >>> mydict1.values() #通过values获取字典中的值 dict_values(['storm', 35]) >>> mydict1['name'] # 通过键获取值 'storm'
(3)增加字典元素
我们再来看一下在Python中如何给字典增加元素。
>>> mydict1 # 原始字典 {'name': 'storm', 'age': 35} >>> mydict1['hero'] = 'Storm' #增加一个键,并赋一个值 >>> mydict1 #再次输出字典元素 {'name': 'storm', 'age': 35, 'hero': 'Storm'}
(4)删除字典元素
接下来,学习在Python中如何删除字典中的元素。
>>> mydict1 {'name': 'storm', 'age': 35, 'hero': 'Storm'} >>> del mydict1['age'] # 通过del 删除指定的元素 >>> mydict1 {'name': 'storm', 'hero': 'Storm'}
(5)修改字典元素
再来学习如何修改字典中的元素。
>>> mydict2 {'name': 'storm', 'age': 35, 'hero': 'Storm'} >>> mydict2['name'] = 'sk' # 直接赋值,修改 >>> mydict2 {'name': 'sk', 'age': 35, 'hero': 'Storm'}
3.1.6 集合
集合和字典类似,也是一组键的集合,但是不存储值。注意,集合中的键不能重复。要创建一个集合,需要提供一个列表作为输入集合。下面通过代码来简单了解一下。
>>> myset = set([1,2,3]) # 传入列表,创建集合 >>> myset {1, 2, 3} >>> myset.add(4) # 通过add添加集合元素 >>> myset {1, 2, 3, 4} >>> myset.remove(2) # 通过remove删除集合元素 >>> myset {1, 3, 4}