day14-模块和异常学习总结

本文详细介绍了Python中的模块导入机制,包括import、from...import等不同方式,并解析了模块导入的原理,强调了如何避免在导入时执行不必要的代码。此外,还探讨了包的概念及其使用,特别是__init__.py文件的角色。最后,文章深入讲解了异常处理,展示了如何通过try-except结构捕获并处理异常,确保程序的稳定运行。
摘要由CSDN通过智能技术生成

day14-模块和异常

1.模块

1.什么是模块

Python中一个Py文件就是一个模块

2.怎么在一个模块中去使用另一个模块的内容

一个模块中的内容能够被另外一个模块使用的前提: 模块名必须符合变量名的要求

如果要在一个模块中使用另外一个模块的内容,必须先导入再使用

3.导入模块

1)import 模块名

导入指定模块,导入后可以通过’模块名.xxx’的方式去使用这个模块中所有的全局变量

2)from 模块名 import 变量名1, 变量名2, 变量名3,…

导入指定模块,导入后可以直接使用指定的变量

3)from 模块名 import *

导入指定模块,导入后可以直接使用模块中所有的全局变量

4)import 模块名 as 新模块名

对模块重命名

5)from 模块名 import 变量名1, 变量名2 as 新变量名2, 变量名3,…

对指定变量重命名

# =============导入方式1=============
# import test
# print(test.x)
# test.func1()
# print(test.name)

# =============导入方式2=============
# from test import x, func1
# print(x)
# func1()

# =============导入方式3=============
# from test import *
# print(x)
# print(name)
# func1()

# =============导入方式4=============
# import test as ts
#
# test = 99
# print(test)
#
# print(ts.x)
# print(ts.name)
# ts.func1()

# =============导入方式5=============
from test import x as tx, name, func1
print(tx)
print(name)
func1()

2.导入模块的原理

1.原理

不管以什么样的方式导入模块,导入模块的时候系统会先将被导入的模块中所有的代码都执行一遍

2.导入模块的时候选择性执行代码

如果一个模块中的部分代码在被别的模块导入的时候不希望被执行,就将不希望被别的模块执行的代码放在指定的if语句中。

if语句:

模块中不需要被别的模块执行的代码就放在下面这个if语句中,需要被别的模块执行的代码就放在这个if语句外面

if __name__ == '__main__':
# import test2
# from test2 import a
# from homework2 import game_start
#
# p1, p2, p3, d = game_start()
# print(p1, p2, p3, d)

from test3 import download
download('肖生克的救赎')

3. 包

1.什么是包

包含了__init__.py文件的文件夹就是包。(包是专门用来封装模块)

包对应的文件夹只放Py文件

普通文件夹可以放其他文件

2.怎么使用

通过包导入模块或者模块中的内容

# =====导入方式1====
# import package.test4
# import package2.test5
#
# print(package.test4.filename)
# package.test4.get_content()
#
# print(package2.test5.c)


# =====导入方式1的变形====
# import package.test4 as t4
# import package2.test5 as t5
#
# print(t4.filename)
# t4.get_content()
#
# print(t5.c)

# =====导入方式2====
# from package import test4
# from package2 import test5
#
# print(test4.filename)
# test4.get_content()
#
# print(test5.c)

# =====导入方式3====
# from package.test4 import filename, get_content
# from package2.test5 import c
#
# print(filename)
# get_content()
# print(c)

3.init.py文件的作用

通过包导入内容的时候,系统就会自动执行包中__init__.py文件中的所有的内容

import fileManager
#
# print(fileManager.xx)
#
# print(fileManager.csvfile.a)
# print(fileManager.jsonfile.c)
#
# fileManager.read_csv()

fileManager.open_file()



# from fileManager import read_csv
# read_csv()

from fileManager.tool.test6 import yy
print(yy)

4.异常捕获

1.异常

报错

程序在执行过程中如果出现异常(报错),程序会直接结束。

exit() #退出程序

# print(100)
# print('abc'[10])
# # exit()         
# print(200)
# print(300)

2.异常捕获

让程序在出现异常的时候不报错(不崩溃),还可以接着往后执行

1)什么时候捕获异常

明知道某个地方可能会出现异常,程序员无能为力,又希望在出现异常的时候程序不要奔溃还可以接着往后执行,这个时候就可以进行异常捕获。

2)怎么捕获异常

结构1: - 捕获所有异常

try:

​ 代码段1(需要捕获异常的代码)

except:

​ 代码段2(捕获到异常后会执行的代码)

其他代码

结构2: - 捕获指定异常

try:

​ 代码段1

except 异常类型:

​ 代码段2

结构3: - 同时捕获多种异常,针对不同的异常做相同的处理

try:

​ 代码段1

except (异常类型1, 异常类型2,…):

​ 代码段2

结构4: - 同时捕获多种异常,针对不同的异常做不同的处理

try:

​ 代码段1

except 异常类型1:

​ 代码段11

except 异常类型2:

​ 代码段22

except 异常类型N:

​ 代码段NN

try:
    print(100)
    print('abc'[10])
    print(200)
    print(300)
except:
    print('捕获到异常!')
# try:
#     age = int(input('请输入年龄:'))
#     if age >= 18:
#         print('可以处对象')
#     else:
#         print('不能处对象')
# except:
#     print('年龄输入有误!')
try:
    age = int(input('请输入年龄:'))
    # print(age + '12')
except ValueError:
    print('年龄输入有误!')

# age = int(input('请输入年龄:'))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值