|
文章目录定义函数:def()语句调用函数:输入函数名和参数对应的值参数return返回值变量作用域定义函数:def()语句语法:def函数名(参数1,参数2,.....,参数n): 函数体 return语句123举例:defhello(name): print(name+"Goodmorning!") return123'运行运行上面我们定义一个名字为hello的函数,括号内部是函数接收的参数name,紧接着就是函数的功能代码。调用函数:输入函数名和参数对应的值defhello(name): print(name+"Goodmorning!") return123'运行运行hello("lily")1多次调用hello("lily,")hello("Mike,")12参数位置参数defmenu(appetizer,course): print("一份开胃菜:"+appetizer) print("一份主食"+course)menu("手拍黄瓜","大米饭")1234'运行运行这里的"手拍黄瓜"和"大米饭"是对应参数appetizer和course的位置顺序传递的,所以被叫作位置参数,这也是最常见的参数类型。默认参数注意:默认参数必须放在位置参数之后defmenu(appetizer,course,dessert="西瓜"): print("一份开胃菜:"+appetizer) print("一份主食:"+course) print("一份甜品:"+dessert)menu("手拍黄瓜","大米饭")12345'运行运行默认将"西瓜"传递给dessert,调用时无须再传递。但是默认参数也会改变的,比如像下面python会自动将"银耳羹"传递给参数dessert。menu("手拍黄瓜","大米饭","银耳羹")1不定长参数:一个星号*加上参数名defmenu(*barbeque): print(barbeque)menu("烤茄子","烤大肠","烤玉米")1234'运行运行barbeque输出的是数据类型是元组,可以用for循环来迭代输出。代码如下:defmenu(appetizer,course,dessert,*barbeque): print("一份开胃菜:"+appetizer) print("一份主菜:"+course) print("一份甜品:"+dessert) foriinbarbeque: print("一份烤串:"+i)menu("手拍黄瓜","大米饭","西瓜","烤茄子","烤大肠","烤玉米")12345678'运行运行return返回值return是返回值,当你输入参数给函数,函数就会返回一个值给你。事实上每个函数都会有返回值。defwqf_album(a): ifa==1: return"太空人" elifa==2: return"册页一与一" elifa==3: return"马拉美的星期二" else: return"敬请期待吴青峰第四张专辑!"wqf_album(1)1234567891011'运行运行1、如果不是立即要对函数返回值做操作,那么可以使用return语句保留返回值。类似这种多个函数相互配合的代码中,我们就会非常需要return语句,来帮我们先保留某个函数的返回值,等要用到的时候再调出来用。defface(name): returnname+"!"defbody(congratulations): returncongratulations+"~"face("吴青峰")body("祈愿你永远平安安康,自在快乐") print(face("吴青峰"),body("祈愿你永远平安安康,自在快乐"))123456789'运行运行2、需要多次调用函数时,可以再定义一个目标主函数main(),调用非主函数的返回值。3、return可以接受一次多个返回,而且多个返回值的数据类型就是元组。defface(name): returnname+"!"defboby(congratulations): returncongratulations+"~"defmain(mylover,mybless): returnface(mylover),body(mybless)print(main("吴青峰","祈愿你永远平安安康,自在快乐"))print(main("anpu","也谢谢你愿意成为我们的歌手!"))1234567894、没有return语句的函数会默认返回None值。deffun():a="Iamwqf."print(fun())1234'运行运行5、一旦函数内部遇到return语句就会停止执行并返回结果。deffun(): return"Iamwqf." return"Iamnotwqf."print(fun())12345'运行运行变量作用域定义一个函数时,理解函数中变量的作用域局部变量:在一个函数内定义的变量仅能在函数内部使用(局部作用域)。全局变量:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域)。x=wqfdefname(): x=wqf print(x)num()#调用函数内部变量print(x)#调用全局变量12345678当变量处于被定义的函数内时,就是局部变量,只能在这个函数内被访问;当变量处于被定义的函数外时,就是全局变量,可以在程序中的任何位置被访问。注意:尽量局部变量与全局变量不要同一个命名。global语句,可以将局部变量转变为全局变量。defname():mylover="wqf"name()print(mylover)#会报错,不能在函数外部(全局作用域)使用函数内的局部变量mylover=108defname():print(mylover)name()#函数内的局部作用域,可以访问全局变量defname():globalmylovermylover=108name()print(mylover)#global语句可以将局部变量声明为全局变量123456789101112131415运行结果1:运行结果2:运行结果3:
|
|