目录
1.模块
2.包
3.文件
4.异常
5.高阶函数
1.1 概念
Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。模块能定义函数,类,变量,也能包含可执行的代码
1.2 导入模块
方式1:
import 模块名 (as 别名) # 使用模块语法: 模块名(别名).功能方式2:
from 模块名 import 功能名 (as 别名) # 使用模块语法: 功能方式3:
from 模块名 import * # 使用模块语法: 功能__all__ 列表语法:__all__ = [功能1,功能2......]
注意:使用 from 模块名 import *方式导入模块,只能导入__all__列表中的功能模块
包中会有一个默认的文件__init__.py文件【控制着包的导入行为】
2.1 概念
包将有联系的模块组织在一起,放在同一个文件夹下,这个文件夹就称之为包。
2.2 导入包
方式1:
import 包名.模块名 # 调用 包名.模块名.功能 import 包名.模块名 as 别名 # 调用 别名.功能方式2:
from 包名.模块名 import 功能名 # 调用 功能 from 模块名 import 功能名 as 别名 # 调用 别名.功能方式3:
from 包名 import * # 调用 模块名.功能注意:可以在__init__.py文件中添加__all__ = [],控制允许导入的模块列表
3.1 打开文件
在Python中,使用open()函数,可以打开一个已经存在的文件,或者创建一个新文件
# 语法 f = open(name, mode,encoding="UTF-8") # 用的最多的形式 # 如果文件不存在 自动创建 with open('a.txt','a',encoding='utf-8') as f: f.write("\nhello")--name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
--mode:设置打开文件的模式(访问模式),只读read、写入write、追加append、二进制binary等,主要为 "r","w","a","b"
--encoding:编码方式【如果是二进制或其他类型的数据就默认,就不特意设置编码】3.2 关闭文件:f.close()
3.3 文件读写
①读:
--read(num):num表示从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
--readline():一次只读取一行即遇到‘\n’返回
--readlines():读取整个文件,并返回列表,一行为一个元素②写:write("内容")
若对已存在的文件进行write,会覆盖文件内原本的内容,这时可以使用append进行内容的追加
4.1 处理异常
①捕获指定异常类型:
try: 可能发生错误的代码 except 异常类型: 如果出现异常执行的代码②捕获多个指定异常:
try: 可能发生错误的代码 except (异常类型1,异常类型2): 如果出现异常执行的代码③捕获所有异常:
try: 可能发生错误的代码 except Exception: 如果出现异常执行的代码④异常的捕获信息:
try: 可能发生错误的代码 except 异常类型 as result: 如果出现异常执行的代码 #result为异常的信息4.2 异常的else
try: 可能发生错误的代码 except Exception: 如果出现异常执行的代码 else: 没有异常时执行的代码4.3 异常的finally
try: 可能发生错误的代码 except Exception: 如果出现异常执行的代码 else: 没有异常时执行的代码 finally: 无论是否有异常都要执行的代码4.4 自定义异常
①自定义类继承Exception
重写__init__
重写__str__
设置抛出异常的描述信息
②使用【raise 自定义异常类】捕获异常案例:判断输入字符串的长度,如果小于指定的长度就报错
class ShortInputException(Exception): def __init__(self, length, least_length): super().__init__() self.length = length self.least_length = least_length def __str__(self): return '您输入的长度为:{},最短长度为:{}'.format(self.length, self.least_length) try: content = input('请输入内容:') if len(content) < 5: raise ShortInputException(len(content), 5) else: print('符合要求') except ShortInputException as e: print(e) ''' 请输入内容:ASD 您输入的长度为:3,最短长度为:5 '''
5.1 概念
把函数作为一个参数传入另一个函数中去,这样的函数称为高阶函数,高阶函数是函数式编程的体现
5.2 内置函数
abs():对数字求绝对值
round():数字的四舍五入5.3 内置高阶函数
①map()
map(func,lst):将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表
案例:计算lst序列中各个数字的2次方func = lambda a:a*a # map函数 接收几个值 就给出几个值 lst = [1,2,3,4,5,6,7,8] m = map(func,lst) # [1,4,9.....] for i in m: print(i)②reduce()
reduce(func,lst),其中func必须有两个参数,每次func计算的结果继续和序列的下一个元素做累计计算
注意:在使用reduce()函数之前,必须导入模块 functools
案例:计算lst序列中各个数字的累加和from functools import reduce as r func = lambda a,b:a+b lst = [1,2,3,4,5,6,7,8] print(r(func,lst))③filter()
filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象,可将其转换成list案例:取出lst序列中的偶数
lst = [1, 2, 3, 4, 5, 6, 7, 8] def func(n): if n % 2 == 0: return True return False f = filter(func, lst) for i in f: print(i)
今天的学习记录就到这了,拜拜!
说明:学习记录,若有错误,欢迎指正,若有疑问,欢迎评论