五、组合数据类型
5.1认识组合数据类型
序列类型:列表、元组、字符串 —> 支持双向索引
集合类型:集合 —> 确定性、互异性、无序性;放入集合中的元素必须为不可变类型(数字类型,字符串,元组)
映射类型:字典 —> 键值对的形式存在,键必须为不可变类型(数字类型,字符串,元组)
多个相同或者不同数据类型的数据组织成一个整体
5.2列表
1、创建列表:
#方法一:[]
list1 = []
list2 = ['p','y']
list3 = ['python1','pppp']
#方法二:set()函数
list4 = list(1)
list5 = list('python')
list6 = list(1,2,'rr')
isinstance()判断是否为可迭代对象
2、访问列表元素
#以索引访问
list1[1]
list1[3]
#以切片方式访问
list2[m:n:step] # 截取部分元素,形成一个新的列表,m~n-1的元素,步长step默认为1
#在循环中依次访问列表元素
list3 = ['p','y','t','h','o','n']
for i in list3:
print(i,end = ' ')
# 结果为:p y t h o n
3、添加列表元素
append():
在列表结尾追加新的元素
extend():
在列表结尾一次添加另一个列表中的所有元素
l1 = ['abc']
l2 = ['123']
l1.extend(l2)
print(l1)
# 结果为:['abc','123']
insert():
按照索引将新元素插入列表中
4、元素排序
sort(key=none , reverse = False) —> key指定排序规则,reverse = False 表示升序,True表示降序
—> 排序后有序的元素会覆盖掉原来的元素,不产生新的列表
sorted() —> 升序排列,产生新的列表,原来的列表不变
reverse() —> 逆置列表
5、删除列表元素
name = ['tom','alice','lucy']
del()
# 1删除指定位置的元素
del name[0]
# 2删除整个列表
del name
remove()
# 移除列表中的某个元素,若有多个,只移除第一个
name.remove('tom')
pop()
# 移除指定位置的元素,默认为最后一个
name.pop()
6、列表推导式
[exp for i in list1 [if cond] # cond为条件
for j in list2 [if cond]]
[x+y for x in range(1:3)
for y in range(2:6)]
5.3元组
1、创建元组
# 1
t = ()
t = (1,)
t = (1,2,3)
# 2
t = tuple()
t = tuple('python') # ('p','y','t','h','o','n')
2、元组补充说明:
元组为不可变类型,元组中的元素不能修改,所以不支持添加、修改、排序操作
元组中只有一个元素时,形式为(1,)
5.4集合
1、创建集合
空集合只能用set()创建,不包含元素的{}创建的是空字典
s1 = {1}
s2 = set([1,2,3])
s3 = set((2,3,4))
s4 = set(range(5))
2、常用方法
方法名 | 说明 |
---|---|
add(x) | 向集合中添加元素x |
remove(x) | 删除元素中的x元素,不存在则抛出KeyError异常 |
discard(x) | 删除元素中的x元素,不存在不做处理 |
pop() | 返回一个元素,并删除该元素 |
clear() | 清空集合 |
copy() | 复制集合,返回一个集合 |
isdisjoint(T) | 判断与集合T是否有相同元素,有False,没有True |
5.5字典
1、创建字典
以键值对的形式存在
{}
dict()
2、访问字典
# 利用键访问 格式:字典变量[键]
dict1['A']
dict1[3]
# 利用get()根据键获取值
dict1.get('A')
# keys():获取所有键
# values():获取所有值
# items():获取所有键值对
3、添加与修改
添加
1、 为指定的键(键存在为修改元素;不存在为添加元素)赋值
2、update()方法:
dict1.update(sno = 55)
修改:
同添加
4、删除
1、pop()
2、popitem(): 随机删除字典中的元素
3、clear():清空字典
六、函数
1、定义与调用
# 定义函数的格式
def 函数名(参数列表):
函数体
[return 语句,可以省略]
函数可以嵌套定义
被嵌套的函数为内层函数,嵌套的函数为外层函数,函数外部无法调用内层函数
2、函数参数的传递
1.位置参数传递
2.关键字参数的传递
有关键字参数传递后不再接受按照参数传递的参数
3.默认参数的传递
4.参数的打包与解包
打包:
*args
接收以元组形式打包的多个值
**kwargs
接收以字典形式打包的多个值
解包:
若以元组的形式接收参数,可以使用*
将其拆分成多个值
若以字典的形式接收参数,可以使用**
将其拆分成多个数据
3、函数的返回值
返回一个值
返回多个值:被保存到元组中
4、变量作用域
局部变量:函数内部定义,只能在函数内部使用
全局变量:整个程序内使用
global关键字:可以实现在函数内部修改全局变量
nonlical关键字:可以实现在函数内部修改嵌套函数内的变量
5、特殊形式的函数
1、递归函数:调用了自身的函数
2、匿名函数:无需定义标识符、函数体只能是一个表达式
lambda <形式参数列表> : <表达式>
# eg.
lambda x : pow(x,2)
七、文件操作
1、基础操作
打开文件:open()
打开方式:
关闭文件:
# close()函数
file.close()
# with语句
with open()
#一些操作
使用完毕后,会自动关闭
读写操作
方法名 | 说明 |
---|---|
read(x) | x表示读取的字节数,默认为-1,表示全部读取 |
readline() | 读取一行数据 |
readlines() | 一次性读取所有文件,每一行为一个元素,以列表的形式保存 |
write() | 将指定字符写入文件 |
writelines() | |
tell() | 获取文件当前的读写位置 |
seek(offset,from) | 设置文件操作的位置,offset表示偏移量,from—>0:文件开头;1:当前读写位置,2:文件结尾 |
2、文件目录管理
方法名 | 说明 |
---|---|
remove() | 删除文件 |
rename() | 文件重命名 |
mkdir()/rmdir() | 创建/删除目录 |
getcwd() | 获取当前目录 |
chdir() | 更改默认名目录 |
listdir() | 获取文件名列表 |
需要引入 os模块
采用 模块名.方法名
的方法调用
八、面向对象
九、异常
1、概述
BaseException类是所有异常类型的基类
NameError | 使用未定义的变量引发的异常 |
---|---|
IndexError | 程序越界访问时引发的异常 |
AttributeError | 使用对象访问不存在的对象引发的异常 |
FileNotFoundError | 未找到指定的文件或者目录引发的异常 |
2、异常捕获
语法格式
try:
可能出错的代码
except [异常类型] [as error]: # 使用as关键字来获取异常的具体信息
捕获异常后处理的代码
else:
没有异常的处理代码
finally:
有无异常都会执行的代码
3、抛出异常
raise
assert
# 格式
assert 表达式 [,异常信息]
# 表达式为False时触发AssertionError异常
# 表达式为True 时不进行任何操作
4、自定义异常
需要继承Exception类
5、补充说明
try—except语句可以有多个except子句
try—except语句只能有一个finally子句文章来源:https://www.toymoban.com/news/detail-448718.html
文章来源地址https://www.toymoban.com/news/detail-448718.html
到了这里,关于python基础知识二的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!