前提:跟着 白月黑羽 学的,本人只是记记笔记以便回顾复习,侵权立马删。
定义函数就像是给一段代码起了一个名字。python中这样定义函数: def 函数名():
函数体的代码要缩进
def interview():
print("哈哈哈")
interview 是一个函数类型的对象。解释器执行到函数时并不会执行里面的代码,要执行函数体里面的代码,必须 调用函数。调用函数是再函数名后+()
interview()
执行完函数后,会返回调用它的代码处。
函数的参数:
def interview(interviewee):
print("求职者是 " + interviewee)
print("把求职者带到3号会议室")
print("请求职者 完成答卷")
print("让测试经理来面试 求职者")
print("让技术总监面试 求职者")
interview('王小五')
在执行函数代码前,会将参数变量 interviewee
赋值为 '王小五'
参数可以没有,也可以有多个,参数之间用逗号隔开。
函数的返回值:函数要有返回值,必须要有return关键字,后面加上返回的结果对象。
def squarep(num1,num2):
return num1**2 + num2**2
ret = squarep(1,2)
print(ret)
解释器执行代码的时候,一旦执行了函数中的 return 语句,就会立即从函数中返回到调用的地方,该函数下面还有代码,也不会再执行了。写在return后面的代码就不会被执行。如果一个函数没有写return语句,就会返回None,None对象是Python内置的,表示没有数据内容的对象。
注意:有return关键字才有返回值,没有return就返回None
缺省值参数
在定义函数的时候,给它加上缺省值,像下面这样:
def abc(arg1, score=60):
...
在调用这个函数的时候,如果score参数还是传入60 就可以不用写了,像这样
abc(arg1)
然如果我们调用的时候传入了参数,比如像下面这样,解释器就会将 70
传给参数score。
abc(arg1,70)
函数的参数定义,一旦有缺省值后,后面所有的参数必须都有缺省值,像这样
def func(arg1, arg2, arg3=3, arg4='hello'):
...
指定参数名调用函数
定义一个函数
def func(arg1, arg2, arg3=3, arg4='hello'):
print(arg1)
print(arg2)
print(arg3)
print(arg4)
调用时可以这样
func(1,2,3,'hello')
也可以指定参数名
func(arg1=1,arg2=2,arg3=3,arg4='hello')
注意:但是一旦某个参数指定了参数名,后面所有的参数必须指定参数名。
变量的范围覆盖:在函数内部,如果 局部变量 和 全局变量同名,使用的是 局部变量。如果在函数内部要对全局变量进行重新赋值。如下
upChars = '零壹贰叁肆伍陆柒捌玖'
def change():
global upChars
upChars = '零一二三四五六七八九'
change()
print(upChars)
通过 global upChars
这行声明,表示 upChars 这个名字对应的是全局变量 upChars