python模块、包、文件、异常、高阶函数

模块

概念
Python模块(Module),是一个Python文件,以.py结尾,包含了Python对象定义和Python语句。模块能定义函数,类,变量,也能包含可执行的代码

导入模块

方式1:import 模块名

from 模块名 as 别名

import Snail

使用模块

语法:模块名.功能

#实例化模块中的类
person = Snail.Person()
person.eat()

在这里插入图片描述

方式2:from 模块名 import 功能名

from 模块名 import 功能名 as 别名

from Snail import Person

使用模块

语法:功能

person = Person()
person.sleep("林夕")

在这里插入图片描述

方式3:from 模块名 import *

from Snail import *

使用模块

语法:功能

person = Person()
person.sleep("林夕")

在这里插入图片描述

__all__列表

all = [功能1,功能2…]

__all__ = ["Person","play"]

使用 from 模块名 import *方式导入模块,只能导入__all__列表中的功能模块

概念:包将有联系的模块组织在一起,放在同一个文件夹下,这个文件夹就称之为包

包中会有一个默认的文件__init__.py文件

控制着包的导入行为
在这里插入图片描述
在这里插入图片描述

导入包

方式1
import 包名.模块名

调用 包名.模块名.功能

import  myPackage.Snail 
import  myPackage.Snail
person = myPackage.Snail.Person()

person.sleep("林夕")

在这里插入图片描述

import 包名.模块名 as 别名

调用 别名.功能

import  myPackage.Snail as s
person = s.Person()
person.sleep("林夕")

在这里插入图片描述

方式2
from 包名.模块名 import 功能名

调用 功能

from myPackage.Snail import Person
person = Person()
print(person.name)

方式3
from 包名 import *

调用 模块名.功能

from myPackage import *
person = Snail.Person()
person.sleep("林夕")

可以在__init__.py文件中添加__all__ = [],控制允许导入的模块列表

__all__ = ["Snail"]

在这里插入图片描述

异常

处理异常

捕获指定异常类型

try:
可能发生错误的代码
except 异常类型:
如果出现异常执行的代码

try:
    a = 6/2
except ZeroDivisionError:
    print("除数不能为0")

在这里插入图片描述

捕获多个指定异常

try:
可能发生错误的代码
except (异常类型1,异常类型2):
如果出现异常执行的代码

捕获所有异常

try:
可能发生错误的代码
except Exception:
如果出现异常执行的代码

异常的捕获信息

try:
可能发生错误的代码
except 异常类型 as result:
如果出现异常执行的代码
#result为异常的信息

try:
    a = 6/0
except Exception:
    print("除数不能为0")

在这里插入图片描述

异常的else

try:
可能发生错误的代码
except Exception:
如果出现异常执行的代码
else:
没有异常时执行的代码

try:
    a = 6/2
except Exception:
    print("除数不能为0")
else:
    print(f"a={a}")

在这里插入图片描述

异常的finally

try:
可能发生错误的代码
except Exception:
如果出现异常执行的代码
else:
没有异常时执行的代码
finally:
无论是否有异常都要执行的代码

try:
    a = 6/2
except Exception:
    print("除数不能为0")
else:
    print(f"a={a}")
finally:
    print("运算结束")
自定义异常

自定义类继承Exception
重写__init__

重写__str__ 设置抛出异常的描述信息

class MyException(Exception):

    def __init__(self,length,minLength):
        self.length = length
        self.minLength = minLength

    def __str__(self):
        return f"输入的长度为{self.length},要求长度最少{self.minLength}"

使用【raise 自定义异常类】捕获异常

try:
    pwd = input("请输入密码:")
    if len(pwd) < 6:
        raise MyException(len(pwd),6)
except MyException as result:
    print(result)
else:
    print(pwd)

在这里插入图片描述
在这里插入图片描述

文件

打开文件

在Python中,使用open()函数,可以打开一个已经存在的文件,或者创建一个新文件
语法:f=open(name, mode,encoding=“UTF-8”)
name:是要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode:设置打开文件的模式(访问模式),只读、写入、追加等,主要为 “r”,“w”,“a”

f = open("readme.txt","r",encoding="UTF-8")

![在这里插入图片描述](https://img-blog.csdnimg.cn/20210114161156142.png

关闭文件

f.close()

文件读写

在这里插入图片描述


read(num)
num表示从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据

content = f.read(2)
print(content)

在这里插入图片描述

readline()

一次只读取一行即遇到‘\n’返回

content = f.readline()
print(content)

在这里插入图片描述

readlines()

读取整个文件,并返回列表,一行为一个元素

content = f.readlines()
print(content)

在这里插入图片描述


write(“内容”)

f.write("林夕")

在这里插入图片描述

高阶函数

把函数作为参数传入,这样的函数称为高阶函数,高阶函数是函数式编程的体现

内置函数
abs():

对数字求绝对值

print(abs(-5))

在这里插入图片描述

round():

数字的四舍五入

print(round(12.523))

在这里插入图片描述

内置高阶函数
map()

map(func,lst):将传入的函数变量func作用到lst变量的每个元素中,并将结果组成新的列表(Python2)/迭代器(Python3)
案例:计算list1序列中各个数字的2次方

list1 = [1,2,3,4,5]

def two(x):
    return x ** 2

result = map(two,list1)
print(list(result))

在这里插入图片描述

reduce()

reduce(func,lst),其中func必须有两个参数,每次func计算的结果继续和序列的下一个元素做累计计算
在使用reduce()函数之前,必须导入模块 functools
案例:计算list1序列中各个数字的累加和

import functools

list1 = [1,2,3,4,5]

def add(x,y):
    return x+y


print(functools.reduce(add, list1))

在这里插入图片描述

filter()

filter(func,lst)函数用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象,可将其转换成list
案例:取出list1序列中的偶数

list1 = [1,2,3,4,5]


def ou(x):
    return x % 2 == 0

result = filter(ou,list1)

print(list(result))

在这里插入图片描述
python模块、包、文件、异常、高阶函数就到这了,88

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值