Python函数
函数
函数(Function):
“喂”给函数一些数据,它就能内部消化,给你“吐”出你想要的东西。
这就像自动贩卖机,只不过贩卖机是喂点钱,吐出来一些吃的喝的用的东西;而Python函数则是喂各种各样的数据,吐出来各种各样的功能。
函数定义
在Python中,函数有五大要点,分别是def、函数名、函数体、参数、返回值,以及两个英文版符号,分别是括号(括号内为参数)和冒号(:)。
def:函数的关键字,没它可不行。
函数名:函数的名称,根据函数名调用函数。
函数体:函数中进行一系列的具体操作。
参数:为函数体提供数据。
返回值:当函数执行完毕后,可以给调用者返回数据。
上述函数的要点中,最重要的是参数和返回值。
1.返回值
函数是一个功能块,该功能到底执行成功与否,需要通过返回值来告知调用者。
2.参数
定义函数时,参数是一定需要考虑的。Python的函数定义非常简单,但灵活度却非常大。
对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解。
Python中,参数类型有:必选参数、默认参数、可变参数、关键字参数和命名关键字参数。函数中,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数。
3.空函数
空函数:什么事也不做,可以用pass语句。既然“一事不做”,那空函数还有什么用处?实际上pass可以用来作为占位符,比如现在还没想好怎么写函数的代码,就可以先放一个pass,让代码能运行起来。如此,运行代码程序就不会出现错误了
函数调用
调用函数最关键的是:得弄清楚这个函数有多少个参数,如何给参数赋值,这个过程在函数里叫做参数的传递(pass)。
参数类型
主要的参数类型有:位置参数、默认参数、不定长参数
默认参数必须放在位置参数和不定长参数之后
不定长参数:它的格式比较特殊,是一个星号*加上参数名(即不确定传递参数的数量)
例如:
def menu(appetizer,course,*barbeque,dessert='绿豆沙'):
print('一份开胃菜:'+appetizer)
print('一份主菜:'+course)
print('一份甜品:'+dessert)
for i in barbeque:
print('一份烤串:'+i)
menu('话梅花生','牛肉拉面','烤鸡翅','烤茄子','烤玉米')
》
一份开胃菜:话梅花生
一份主菜:牛肉拉面
一份甜品:绿豆沙
一份烤串:烤鸡翅
一份烤串:烤茄子
一份烤串:烤玉米
Return 语句
在多个函数相互配合的代码中,我们非常需要return语句,来帮我们先保留某个函数的返回值,等要用到的时候再调出来用。
所以更常见的做法是:再定义一个主函数main(),参数调用前两个函数的返回值。
def face(name):
return name + '的脸蛋'
def body(name):
return name + '的身材'
def main(dream_face,dream_body):
return '我的梦中情人:' + face(dream_face) + ' + ' + body(dream_body)
print(main('李若彤','林志玲'))
print(main('新垣结衣','长泽雅美'))
》
我的梦中情人:李若彤的脸蛋 + 林志玲的身材
我的梦中情人:新垣结衣的脸蛋 + 长泽雅美的身材
变量作用域
第一点:在一个函数内定义的变量仅能在函数内部使用(局部作用域),它们被称作【局部变量】。
第二点:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),它们叫【全局变量】