python-day14模块和包

本文详细介绍了Python中的模块和包的使用,包括模块的导入方式(import、from...import等)、导入原理,如何阻止模块导入时执行代码,以及包的概念和使用。此外,还讲解了异常捕获的完整结构和如何主动抛出异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、模块

1.什么是模块

python中一个py文件就是一个模块

2.如果在一个模块中去使用另外一个模块中的内容

使用前提:
1)需要被别的模块使用的模块名必须符合变量名的要求
2)导入模块 - 模块里面的内容必须要先导入再使用

3.怎么导入模块

import 模块名 - 导入指定模块,导入后可以通过’模块名.xxx’的方式使用这个模块中的全局变量
from 模块名 import 变量1,变量2,变量3,… - 导入指定模块,导入后可以直接使用指定的变量
form 模块名 import * - 导入指定模块,导入后可以直接使用模块中所有的全局变量
import 模块名 as 新模块名 - 对模块重命名
from 模块名 import 变量1 as 新变量1 - 对变量重命名

# =========导入方式1==========
# import texst1
#
# print(texst1.a)


# =========导入方式2==========
# from texst1 import a,func1
# print(a)

二、导入模块

1.导入原理

不管是import还是from-import导入模块的时候,系统都会自动进入指定的模块,将模块中的代码全部执行一遍

2. 阻止导入

导入模块的时候,不让模块中的所有代码都执行,只执行需要执行的部分
阻止的方法:在被导入的模块中添加main对应的if语句,把不希望被执行的代码放到if语句里面

# from test2 import donwload
# donwload('阿甘正传')
# 注意:同一个模块如果导入多次,模块中的代码只会执行一次(自动查重)

三、包

1.什么是包

python中将包好了__int__.py文件的文件夹叫做包,它是专门用来管理模块的。

2.怎么使用包中的模块中的内容

1)import 包名 - 直接导入包,导入后可以用’包名.xxx’去使用包中__int__.py文件中的所有的全局变量

  1. import 包名.模块名 - 导入包中指定的模块,导入后可以用’包名.模块名.xxx’去使用指定模块中的所有全局变量
    3)from 包名 import 模块名1,模块名2,…
    4)from 包名.模块名 import 变量1,变量2,…
# ===================方法1==============
# import files
# print(files.x)

# ===================方法2==============
# import files.test3 as ls
# print(files.test3.name)
# print(files.test3.age)
# ls.func1()

# ===================方法3==============
# from files import test3
# print(test3.age)

# ===================方法4==============
# from  files.test3 import age,name
# print(age,name)

四、异常捕获

1.异常

  • 程序执行中出现的错误就说异常
#如果程序执行过程中出现了异常,程序会崩溃,不会再执行后面的代码
print('======')
print('=*****=')
# print('abc'[5]) # IndexError: string index out of range
print('------')

2.异常捕获

  • 让程序在出现异常的时候不崩溃,还能接着往后执行

1).异常捕获的场景:程序员知道某个位置可能会出现异常(出现异常的原因不是代码本身的问题,而是使用者操作不当等原因),但是又希望在出现异常的时候程序不崩溃还可以接着往后执行,这个时候才需要进行异常捕获
2)捕获异常的语法结构:
a.捕获任何类型的异常
try:
代码段1(需要捕获异常的代码)
except :
代码段2(捕获到异常以后会执行的代码)

执行过程:先执行代码段1,如果代码段1出现异常不会崩溃,而是马上执行代码段3;如果代码段1没有出现异常,代码段2不会执行。

b.捕获特定类型的异常
try:
代码段1(需要捕获异常的代码)
except 异常类型:
代码段2(捕获到异常以后会执行的代码)

c.可以同时捕获多种异常,针对不同的异常做相同的处理
try:
代码段1(需要捕获异常的代码)
except (异常类型1,异常类型2):
代码段2(捕获到异常以后会执行的代码)

d.可以同时捕获多种异常,针对不同的异常做不同的处理
try:
代码段1(需要捕获异常的代码)
except 异常类型1:
代码段11
except 异常类型2:
代码段22
except 异常类型3:
代码段33

# try:
#     age = int(input('请输入年龄:'))
#     if age >= 18:
#         print('成年')
#     else:
#         print('未成年')
# except:
#     print('年龄有误!')

3.异常捕获完整结构

try:
代码段1(需要捕获异常的代码)
except:
代码段2(捕获到异常后执行的代码)
else:
代码段3(没有出现异常会执行的代码)
finally:
代码段4(不管有没有出现异常都会执行的代码)

try:
    print('abc')
except:
    print('出现异常')
else:
    print('没有出现异常')
finally:
    print('都会执行')

五、抛出异常

1.抛出异常

  • 主动让程序报错、崩溃

语法: raise 异常类型

自定义异常类型:

class AgeError(Exception):
    def __str__(self):
        return '年龄有误,正确的年龄范围是0~150岁!'


age = int(input('请输入正确的年龄:'))
if age <= 0 or age > 150:
    raise ValueError
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值