长沙软件开发培训学校,高端JAVA培训机构。
报名咨询热线:0731 8871 1630

Python编程

当前位置:主页 > 学习资料 > Python编程 >

第七课 函数

函数的定义与调用

函数是实现某一功能的代码段,也可以称为子程序,可以反复调用执行。

函数的定义

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

当局部变量与全局变量重名时,局部变量优先。

编程练习

将之前编写的程序题改成函数实现。

栏目导航 Navigation

热门文章 Hots

推荐内容 Recommend

咨询电话:0731 8871 1630 谢老师

咨询QQ:46549572

微信咨询:hn887700

网上报名


学校地址:湖南省长沙岳麓区麓谷大道699号(北门) 网站备案号:湘ICP备15000537号-4
>在线客服
QQ咨询
咨询电话

0731 8871 1630

谢老师

微信咨询