模块6
函数
6.1函数概述
函数是组织好的、实现单一功能或相关联功能的代码段。
可以在需要的地方以“函数名()”的形式调用。
函数的优点:1.将程序模块化,既减少了冗余代码,又让程序结构更为清晰、2.提高开发人员的编程效率、3方便后期的维护与扩展
6.2.1定义函数
Python中使用关键字def来定义函数,其语法格式如下:
6.2.2调用函数
函数在定义完成后不会立刻执行,直到被程序调用时才会执行。
语法格式:函数名(参数列表)
函数内部也可以调用其他函数,这被称为函数的嵌套调用。
函数在定义时可以在其内部嵌套定义另外一个函数,此时嵌套的函数称为外层函数,被嵌套的函数称为内层函数
def add():
result=10+20
print(result)
def add_modify(a,b):
result=a+b
add()
print(result)
# a=add()
c=add_modify(10,78)
def get_max(a,b):
if a>b:
print(a,"较大值")
else:
print(b,"较大值")
b=get_max(8,5)
6.3函数的传递
形参:定义函数时设置的内置参数
实参:调用函数时传入的参数
参数的传递:是指将实际参数传递给形式参数的过程。
函数参数的传递可以分为位置参数传递、关键字参数传递、默认参数传递、参数的打包与解包以及混合传递。
6.4参数的打包和解包
1.打包——"**"
2.解包
6.5局部变量和全局变量
根据作用域的不同,变量可以划分为局部变量和全局变量。
1.局部变量
不同函数内部可以包含同名的局部变量,这些局部变量的关系类似于不同目录下同名文件的关系,它们相互独立,互不影响
2.全局变量
全局变量可以在整个程序的范围内起作用,它不会受到函数范围的影响
全局变量在函数内部只能被访问,而无法直接修改
6.6 global和nonlocal关键字
1, 使用global关键字可以将局部变量声明为全局变量,其使用方法如下:
global 变量
2.使用nonlocal关键字可以在局部作用域中修改嵌套作用域中定义的变量,其使用方法如下:onlocal关键字
6.7递归函数
6.7.1递归函数
1.递推:递归本次的执行都基于上一次的运算结果。
2.回溯:遇到终止条件时,则沿着递推往回一级一级地把值返回来。
格式如下
# def connect(ip,port=8080):
# print(f"shebei{ip}:{port}连接!")
# connect(ip="127.0.0.1")
# connect(ip="127.0.0.1",port=3306)
# 打包(一个*元组,两个**字典)
# def test(*args):
# print(args)
# test(11,22,33,44,55)
# def test(**kwargs):
# print(kwargs)
# # test(a=11,b=22,c=33,d=44,e=55)
#报错 test(11,22,33,44,55)
# 解包(一个*元组,两个**字典)
# def test1(a,b,c,d,e):
# print(a,b,c,d,e)
# nums=(11,22,33,44,55)
# test1(*nums)
# nums1={"a":11,"b":22,"c":33,"d":44,"e":55}
# test1(**nums1)
# 混合传递
# def test(a,b,c=33,*args,**kwargs):
# print(a,b,c,args,kwargs)#定义
# test(1,2)
# test(1,2,3)
# test(1,2,3,4)
# test(1,2,3,4,e=5)#调用
#
def filter_sensitive_words(words):
if "山寨" in words:
new_words=words.replace("手机","**")
return new_words
result=filter_sensitive_words("这个手机是山寨版吧!")
print(result)
列题