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

思维导图:

在这里插入图片描述

模块:

"""
定义模块
类(属性+方法)、函数、变量、可执行语句

"""
# 控制*导入的方法
__all__ = ["Person", "playDD"]


class Person(object):

    def __init__(self):
        self.name = "张三"

    def eat(self):
        print("这是模块中类的方法")

    def sleep(self, who):
        print(f"某某正在和{who}睡觉")

# 单独定义函数
def playDD():
    print("这是模块中的函数")


# 单独定义模块中的变量
age = 22

测试:

# 导入模块
# 方式1: import 模块名
# import Snail
# 取别名
# import Snail as s
#
# # 实例化模块中的类
# person = s.Person()
# person.eat()
# person.sleep("zs")
# print(person.name)
#
# s.playDD()
# print(s.age)


# 方式2: from 模块名 import 功能 (了解)
# from Snail import Person
# from Snail import playDD
# from Snail import age
# person = Person()
# person.sleep("as")
#
# playDD()
# print(age)

# 方式3: from 模块名 import *
# 在类上面加__all__ = [] 进行控制导入
from myPackage.Snail import *
person = Person()
person.sleep("af")

playDD()


包:

"""
导入包
"""
# 方式1
# import myPackage.Snail as s
# # # person = myPackage.Snail.Person()
# # person = s.Person()
# # person.sleep("asd")

# 方式2
# from myPackage.Snail import playDD, Person
# person = Person()
# print(person.name)

# 方式3
# from myPackage.Snail import *
from myPackage import *  # 此方法需要在__init__.py下用__all__ = []控制导入的模块 否则不能导入
person = Snail.Person()
person.sleep("mm")

init.py:

__all__ = ["Snail"]

异常

""""
异常
语法格式:
try :
    可能会出异常的代码

except 异常类型1,异常类型2 | Exception:
    出现异常,解决异常的代码
else:
    没有异常,执行的代码
finally :
    无论是否有异常,都会执行
"""
"""
可用if else 
这里用异常判断密码长度是否小于6位
"""
# 自定义异常
class MyException(Exception):

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

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


# 测试自定义函数
try:
    pwd = input("请输入密码:")
    if len(pwd) < 6:
        raise  MyException(len(pwd), 6)
except MyException as result:
    print(result)
else:
    print(pwd)


# print(6/3)
# try:
#     a = 6/2
# except ZeroDivisionError:
#     print("除数不能为0")
# else:
#     print(f"a={a}")
# finally:
#     print("运算结束")

文件:

"""
文件操作
r:读
w:写
a:追加
"""
f = open("readme.txt", "r", encoding="utf-8")
# 写文件
# f.write("好好学习,天天向上")

# 读文件
# content = f.read(2) # 读指定长度
# content = f.readline()  # 读单行
# content = f.readlines() # 读所有
# print(content[0: 2])

readme.txt:

好好学习,天天向上
比你优秀的人还在努力,你有什么资格停下脚步
请不要假装很努力,因为结果不会陪你演戏

高阶函数:

"""
高阶函数
"""
import functools
# 内置函数
print(abs(-5))  # 绝对值
print(round(12.89, 1))  # 四舍五入

# 高阶函数:3
# 1、map()
list1 = [1, 2, 3, 4, 5]

# def two(x):
#     return x ** 2
#
# result = map(two, list1)
# print(list(result))


# 2、reduce()
# def add(x, y):
#     return x+y
#
# print(functools.reduce(add, list1))


# 3、filter()
def ou(x):
    return x % 2 == 0

result = filter(ou, list1)
print(list(result))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值