函数是实现某一功能的代码段,也可以称为子程序,可以反复调用执行。
def 函数名(参数):
函数代码
def ppp():
print("**************")
print("**************")
print("**************")
print("**************")
这段代码只是定义一个名为ppp的函数,并不会执行,除非调用它。
在程序中如果需要调用一个函数,只需通过函数名来调用,例如:
ppp()
ppp()
每调用一次,就会把函数代码执行一遍。
在调用函数时可以传递一些值给函数代码,传入不同的值可以到不同的执行结果。例如,如果希望ppp函数可以在调用时再决定矩形宽高,则可以调用时传入宽高两个数据。
ppp(20,8)
ppp(30,10)
那么,在定义函数的代码也需要修改,必须要申明参数,代码也要做出相应的改变,如下:
def ppp(w,h):
i=0
while i<h:
j=0
while j<w :print("*",end='');j=j+1
print()
i=i+1
调用函数时,可以带上参数名,则参数并不一定要按原顺序写,例如:
ppp(h=5,w=10)
定义函数时可以给参数设置默认值,则调用时该参数可省略,例如:
def ppp(w=10,h=5):
则调用时有默认值的参数可写可不写。
如果函数调用时需要传入的参数个数是不确定的,则可以在参数名前加一个 *
def ppp(a,*b):
print(b)
则调用时,a后面的所有参数会被统一存放在元组b中,print函数就是这个原理。
也可以将参数以字典的形式传入,定义时在参数名前加** ,调用时指定参数名。
def ppp(**b):
print(b)
ppp(aa=1,bb=2,cc=3)
函数代码执行完后,可以返回一个值给调用它的程序。
return 值
例如,求最大公约数的函数
def gys(a,b):
i=a
while i>0:
if(a%i==0 and b%i==0) return i
i=i-1
当执行return时函数结束,返回调用处继续执行。
调用有返回值的函数时,可以用变量接受函数的返回值,例如:
a=gys(64,48)
也可以直接用函数调用参与表达式运算,例如:
print(gys(12,8)*10)
return语句也可以不带返回值,仅用于结束函数,不带返回值则返回None。
一个自定义函数中可以调用另一个函数,比如a函数调用b函数,b函数调用c函数,调用层数不限制。
函数也可以调用自己,这种称之为“递归”,设计递归函数时,要设计好结束条件,避免进入“无限递归”。
不可变类型:整数、字符串、元组。
可变类型: 列表,字典等。
局部变量:函数内定义的变量为局部变量,只在函数代码内有效,函数调用结束后就消失。
全局变量:函数外定义的变量为全局变量,在函数内也可以访问,程序结束时才会消失。
在函数中可以访问全局变量,但是不能修改它的值,除非在函数中用global关键字申明一下这是个全局变量,例如:
global a
当局部变量与全局变量重名时,局部变量优先。
将之前编写的程序题改成函数实现。
咨询电话:0731-88711630 微信号:hn887700 谢老师 QQ:359689361
长沙网学教育科技有限公司 网站备案号:湘ICP备15000537号