函数

函数
函数概述
函数是组织好的、实现单一功能或相关联功能的代码段。我们可以将函数视为一段有名字的代码,这类代码可以在需要的地方以“函数名()”的形式调用。
print()
input()
优点:
(1)将程序模块化,既减少了冗余代码,又让程序结构更为清晰
(2)提高开发人员的编程效率
(3)方便后期的维护与扩展
二.函数的定义和调用
定义:print()函数和input()都是Python的内置函数,这些函数由Python定义。开发人员也可以根据自己的需求定义函数,Python中使用关键字def来定义函数。
例:
无参数:
def add():
result=11+22
print(result)
有参数:
def add_modify(a,b):
result=a+b
print(result)
三.调用函数
(1)
add()
add_modify(10,20)
(2)

def add_modify(a,b):
result=a+b
add()
print(result)
add_modify(10,20)

函数的嵌套定义
函数在定义时可以在其内部嵌套定义另外一个函数,此时嵌套的函数称为外层函数,被嵌套的函数称为内层函数。

def add_modify(a,b):
result=a+b
print(result)
def test():
print(“我是内层函数”)
add_modify(10,20)
函数的参数的传递
将定义函数时设置的参数称为形式参数(简称为形参),将调用函数时传入的参数称为实际参数(简称为实参)。函数的参数传递是指将实际参数传递给形式参数的过程。
函数参数的传递可以分为位置参数传递、关键字参数传递、默认参数传递、参数的打包与解包以及混合传递。
位置参数的传递
将第一个实参传递给第一个形参,将第二个实参传递给第二个形参,以此类推。
例:
def get_max(a,b):
if a > b:
prinnt(a,“是较大的值!”)
else:
print(b,“是较大的值!”)
get_max(8,5)
关键字参数的传递
通过“形参=实参”的格式将实参与形参相关联,将实参按照相应的关键字传递给形参。

def connect(ip,port):
print(f"设备{ip}:{port}连接!")
connect(ip=“127.0.0.1=8080”)
Python在3.8版本中新增了仅限位置形参的语法,使用符号“/”来限定部分形参只接收采用位置传递方式的实参。
#错误的调用的方式
#func(a=10,20,30)
def func(a,b,/,c): #func(10,b=20,30)
print(a,b,c) #正确的调用方式
#func(10,20,c=30)
默认参数的传递
函数在定义时可以指定形参的默认值,如此在被调用时可以选择是否给带有默认值的形参传值,若没有给带有默认值的形参传值,则直接使用该形参的默认值。
def connect(ip,port=8080):
print(f"设备{ip}:{port}连接!")

connect(ip=“127.0.0.1”)
connect(ip=“127,0.0.1”,port=3306)

设备127.0.0.1:8080l连接!
设备127.0.0.1:3306连接!
混合传递
在定义函数时:
(1)带有默认值的参数必须位于普通参数之后。
(2)带有“”标识的参数必须位于带有默认值的参数之后。
(3)带有“**”标识的参数必须位于带有“
”标识的参数之后。

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)

1 2 33 () {}
1 2 3 () {}
1 2 3 (4,) {}
1 2 3 (4,) {‘e’:5}

函数的返回值
(1)函数中的return语句会在函数结束时将数据返回给程序,同时让程序回到函数被调用的位置继续执行。
例:
result=filter_sensitive_words(“这个手机是山寨版吧!”)
print(result)

这个手机是**版吧!
如果函数使用return语句返回了多个值,那么这些值将被保存到元组中。

result=move(100,100,60)
print(result)
(160,40)
变量作用域
变量并非在程序的任意位置都可以被访问,其访问权限取决于变量定义的位置,其所处的有效范围称为变量的作用域。
分类:
(1)局部变量:函数内部定义的变量,只能在函数内部被使用
函数执行结束之后局部变量会被释放,此时无法再进行访问。
不同函数内部可以包含同名的局部变量,这些局部变量的关系类似于不同目录下同名文件的关系,它们相互独立,互不影响。

test_one()
test two()
10
20

全局变量:全局变量可以在整个程序的范围内起作用,它不会受到函数范围的影响。

number=10 #全局变量
def test_one():
print(number) #函数内部访问全局变量
test_one()
print(number) #函数外部访问全局变量
10
10

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值