01 python 函数
目录
1. 函数的定义和常用操作
- 函数定义:
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。函数能提高应用的模块性,和代码的重复利用率。Python提供了许多内建函数,比如print()。但你也可以自己创建函数,这被叫做用户自定义函数。
def 函数名称():
代码
returu 需要返回的内容
- 函数的调用
函数名称()
- 函数常用操作~举例说明
#读取人物名称
f = open('name.txt',encoding='utf-8')
data = f.read()
print(data.split('|'))
#读取兵器名称
f2 = open('weapon.txt',encoding='utf-8')
i = 1
for line in f2.readlines():
if i % 2 == 1:
print(line.strip('\n'))
i +=1
#读取原著
f3 = open('sanguo.txt',encoding='utf-8')
print(f3.read().replace('\n',''))
函数举例01
def func(filename):
print(open(filename,encoding='utf-8').read())
print('test func')
func('name.txt')
改写函数
import re
def find_item( hero ):
with open('sanguo.txt',encoding='utf-8') as f:
data = f.read().replace('\n','')
name_num = re.findall(hero,data) #函数返回包含所有匹配项的列表。返回string中所有与pattern相匹配的全部字串,返回形式为数组
print('主角 %s 出现 %s 次' %(hero,len(name_num)))
return len(name_num)
#读取人物的信息
name_dict = {}
with open('name.txt',encoding='utf-8') as f:
for line in f:
names = line.split("|") #split():拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表(list)
for n in names:
# print(n)
name_num = find_item(n)
name_dict[n] = name_num
name_sorted = sorted(name_dict.items(),key=lambda item: item[1],reverse=True)
# print(name_sorted[0:10])
2. 函数的可变长参数
#原样长度
def func(a, b, c):
print('a= %s' %a)
print('b= %s' %b)
print('c= %s' %c)
func(1,2,3)
func(1,c=3,b=2)
#可变长,前面增加参数
#取得参数的个数
def howlong(first, *other):
print( 1 + len(other))
howlong(123,234,456)
#3
howlong(123)
#1
3. 函数的变量作用域
var1 = 123
def func():
var1 = 456
print(var1)
func()
print(var1)
#456 函数里面
#123 函数外面
var1 = 123
def func():
global var1 #引入全局变量global
var1 = 456
print(var1)
func()
print(var1)
#456
#456
4. 函数的迭代器与生成器
#一
list1 = [1,2,3]
it = iter(list1)
print( next(it))
print( next(it))
print( next(it))
print( next(it)) #error 迭代完了,出现异常
#二
# for i in range(10,20,0.5):
# print(i) #error,只支持int类型
def frange(start, stop, step):
x = start
while x < stop:
yield x #运行到当前位置暂停记录当前位置,在返回值;迭代,一次只出现一个值。【print(x) 一次全部输出】
x += step
for i in frange(10,20,0.5):
print(i)
5. python 内建函数
在Python中有两种函数,一种是def定义的函数,另一种是lambda函数,也就是大家常说的匿名函数。今天我就和大家聊聊lambda函数,在Python编程中,大家习惯将其称为表达式。
#简化函数
#1 def定义的函数
def true(): return True
#2 lambda函数~匿名函数
lambda : True #函数名和renturn 关键字简化掉
#pycharm执行
def add(x,y):
print(x+y)
add(3,5)
#以下在windows python 终端 环境执行
>>>def add(x,y): return x+y
>>>lambda x,y: x+y
>>>add(3,5)
#8
#两个例子
lambda x:x<= (month,day)
def func1(x):
return x<= (month,day)
lambda item:item[1]
def func2(item):
return item[1]
# 以下在windows python 终端 环境执行
>>> def func2(item):
... return item[1]
...
>>> adict = {'a':'aa','b':'bb'}
>>> for i in adict.items():
... func2(i)
...
'aa'
'bb'
6. 闭包的定义
7. 装饰器的定义
8. 装饰器的使用
9. 自定义上下文管理器
调用函数
创建函数
可变长函数
变量的作用域
匿名函数
生成器
迭代器
装饰器