高级函数补充:
filter:筛选出符合
案例:
def fun(x):
return x%2==0
list1 = [12,32,34,32,33,43,53]
print(list(filter(fun,list1)))
模块
1.什么是模块
2.如何在一个模块中取使用另外一个模块中的内容
前提:
需要被别的模块使用的模块的模块名必须符合变量名的要求
3.怎么导入模块
方法:
- 直接导入:import 模块名:导入指定模块,可以通过模块名.xxx的方式使用这个模块中的全局变量
- from 模块名 import 变量1,变量2,变量3,…:导入后可以直接使用指定的变量
- from 模块名 import *:导入指定模块,导入后可以使用当中所有变量
- import 模块名 as 新模块名:对模块命名
- from 模块名 import 变量1 as 新变量1,变量2 as 新变量2:对模块重命名
test1是我创建的py文件,如下
a = '张三'
b = 90
def fun_test(x):
return x
案例1:import 模块名,
import test1
print(test1.a)
print(test1.fun_test('我爱你'))
案例2:
from test1 import a,fun_test
print(a)
print(fun_test('我爱你'))
案例3:
from test1 import *
print(a)
print(fun_test('i love you'))
案例4:
from test1 import fun_test as f_t
print(f_t('我爱你'))
案例5:
import test1 as t1
print(t1.a)
print(t1.fun_test('不爱你'))
导入模块原理
1.不管是import还是from import导入模块的时候,系统都会自动进入指定的模块,将模块中的
代码全部执行一遍。
但是当我们仅仅只想要一个方法时,模块中代码还是都执行,因此,提出问题:是否有方法可以
使得只让当前需要的模块部分执行。
2.阻止导入
导入模块的时候,不让模块中的所有代码都执行,只执行需要执行的部分。
阻止的方法:
- 在被导入的模块中添加main对应的if语句,把不希望被别的模块执行的代码放到if语句里面:if _name_ == ‘__main__’:
注意:
- 同一个模块如果导入多次,模块中的代码只会执行一次(自动查重)
包
- 什么是包
- python中将包好了_init_.py文件的文件夹叫做包,他是专门拿来管理模块的。
- 怎么使用包中模块的内容
前提:
- 先在包中创建文件one.py,写入:
a = '张三'
b = 90
def fun_test(x):
return x
- 同时在名为:_init_.py文件中写入:
c = 1212
def fun(x):
return x
导入方式:
- import 包名:直接导入包,导入后可以用‘包名.xxx’去使用包中_init_.py文件中的所有全局变量
import day14_pack
print(day14_pack.c)
- import 包名.py文件 :导入包中指定的模块,导入后可以用’包名.模块名. xxx.'去使用指定模块中的所有的全局变量
import day14_pack.one as ts
print(ts.a)
print(ts.fun_test('我爱你'))
- from 包名 import 文件名
from day14_pack import one
print(one.a)
print(one.fun_test('思念'))
- from 包名.文件名 import 变量1,变量2
from day14_pack.one import a,fun_test
print(a)
print(fun_test('想念'))
异常捕获
异常:程序执行过程中报的错就是异常,如果程序执行过程中出现了异常,程序会崩溃,不会再执行后面的代码
异常捕获:让程序出现异常时不崩溃,还能接着执行
- 异常捕获的场景:程序员知道某个位置可能会出现异常(出现异常的原因不是代码本身的问题,而是使用者操作不当等原因),但是又希望在出现异常的时候程序不崩溃还可以接着往后执行,这个时候才需要进行异常捕获。
语法:
-
捕获任何异常 执行过程:先执行代码段1,如果代码出现异常不会报错,而是马上执行代码段2,如果代码段1没有出现异常,代码段2不执行
try:
pass
except:
pass
- 捕获指定的异常
try:
pass
except 异常类型:
pass
- 捕获多种错误异常:针对不同异常做相同处理
try:
pass
except (异常类型1,异常类型2....):
pass
- 捕获多种错误异常:针对不同异常做不同处理
try:
pass
except:
pass
except:
pass
except:
pass
....
异常捕获完整结构:
try:
pass
except:
pass
else:
pass
finally:
pass
抛出异常
作用:主动让程序报错、崩溃
语法:raise 异常类型
案例:
class age_error(Exception):
def __str__(self):
return 'Age ERROR'
age = int(input("enter age:"))
if age<0 or age>150:
raise age_error
|