0
点赞
收藏
分享

微信扫一扫

Python之模块、包、异常

认真的老去 2022-01-10 阅读 56
# 导入一个模块本质上就是执行了一个py文件
'''
导入模块的方式:
import模块名
语法:
    import 模块名
    import 模块名1,模块名2...
    模块名.功能名()
'''
# 导入random模块
# time处理时间的模块

import random, time

# 注意:没有用的时候是灰色的,用了才有颜色
# 使用模块中的函数,语法:模块名.功能名()
# randint()的作用:实现随机生成数字区间的功能

num = random.randint(1, 5)
print(num)

# sleep() 休眠
# time.sleep(2)  # 休眠2秒
print('Ustinian')

# 需求:使用math模块下的一个方法sqrt函数进行开平方计算
import math  # 导入数学计算的一个模块
# 使用方式:模块名.功能名()
print(math.sqrt(9))  # 返回浮点数

# 导入方式:from 模块名 import 功能名
from math import sqrt
# 使用方式:功能名()
print(sqrt(9))

# 在同一个模块中导入多个函数: from 模块名 import 功能1,功能2,功能3
from math import sqrt, fabs, fmod
# fabs:返回数字的绝对值  fmod:返回余数
print(fabs(-3))
print(fmod(2, 5))

# from 模块名 import *
# from math import *
# *把模块中所有的方法一次性导入

# import 模块名 导入全部 --> 每次使用模块中的函数都要模块名.功能名()

# import 模块名 as 别名  给模块起别名
import math as shuxue
print(shuxue.fabs(-1))

# 注意:定义模块别名后,不能使用原来的模块名,否则报错

# from 模块名 import 功能名 as 别名  给功能起别名
from math import fabs as jueduizhi
print(jueduizhi(-6))

from module1 import testA, name
# 导入自定义模块,模块名下面有红色的波浪线,执行没有问题
# 解决办法:右边文件所在的目录--》mark directory as--》source Root
print(testA(2, 2))
print(name)

# if __name__ == "__main__":
# 1、作用:用来控制py文件在不同的应用场景下执行不同的逻辑
# 2、系统变量__name__
# 1、如果是在当前文件打印,值是__main__
# 2、如果被其他文件导入,值是该模块的模块名
# 3、相当于是python模拟的程序入口

# 包的使用
# import 包名
import pac01
# from pac01 import *
# register.reg()
# login.log()
from pac01 import register,login  # 从pac01包导入register模块
register.reg()
login.log()
# __all__变量
# 值为一个列表,存储的是当前模块中一些成员(变量、函数或者类)的名称
# __all__列表它是可以控制模块导入的行为的

# 异常
'''
try:
    可能引发异常现象的代码
    # 不确定是否能够正常执行的代码
    
except 异常类型:
    出现异常现象的处理代码
    # 出现异常时希望执行的代码
'''
# try:
#     a
# except NameError:  # 命名错误
#     print('这个是错误的')

# try:
#     a
# except TypeError:  # 类型错误
#     print('这个是错误的')
#     # 注意:不是类型错误依然报错

# 当捕获多个异常类型的时候,使用元组的形式编写
# 方式一:
try:
    a
except (NameError, TypeError):
    print('这个是错误的')

# 方式二:
tu = (NameError, TypeError)
try:
    a
except tu:
    print('这个是错误的')

# 将错误信息取别名
try:
    a
except NameError as error:
    # as error 相当于把异常信息保存在error里面
    print(error)

try:
    a
except Exception as e:  # 万能异常,可以捕获到任意的异常
    print('报错信息:', e)

'''
try:
    可能引发异常现象的代码
except:
    出现异常现象的处理代码
else:
    try代码快结束后运行的代码
    
else在if中:条件不满足时执行的代码
没有捕获到异常,那么就执行else中的代码
'''
try:
    print('Ustinian')
except Exception:
    print('这是错的')
else:
    print('这是else')

'''
try:
    6
except:(可以没有)
    6
else:
    try代码块结束后的代码
finally:无论是否有异常,都会执行
    try代码块结束后的代码
'''

# 主动抛出异常
# 自定义异常并且抛出异常
# 1、自定义异常语法:Exception(‘异常的描述信息’)
# 2、抛出异常:raise 自定义的异常

def funm():
    raise Exception('抛出一个异常')
    # 注意:raise后面的代码无法执行
# funm()

# 应用场景
# 需求:定义一个登录函数,判断密码的长度,如果长度不足,则抛出异常
def login():
    pwd = input('请输入你的密码:')
    # 判断密码长度等于6
    if len(pwd) == 6:
        return '登录成功'
    # 创建异常对象
    error = Exception('密码长度不符合')
    raise error

# print(login())

# 捕获异常
try:
    print(login())
except Exception as a:
    print(a)

举报

相关推荐

0 条评论