python——函数
一,函数的创建与调用
开展之前,先说一下为什么要有函数存在:
假如每当我们实现同一个功能,就要重新输入代码,是不是太麻烦了?如果我们能把这段代码封装起来,用一个名称代替,每次使用到这个功能就用名称调用,是不是非常爽。这就是函数存在的意义。
创建函数的格式:
##### def function_name () :
##### 代码块
>>>def myfirstfunction():
print("人生苦短,我学python!")
## 调用函数
>>> myfirstfunction()
人生苦短,我学python!
函数后面的小括号是什么呢?请看下面:
二,函数的参数
同样,先说一下为什么要有参数的存在:
试想一下,假如括号里任何东西都没有,每当我们调用函数时,每次执行的语句都一样,当碰到其他情况了怎么办呢?所以,参数的存在就是为了实现函数的个性化,使得函数能应用不同的要求。
>>> def mysecondfunction(language):
print("人生苦短,我学{}".format(language))
>>> mysecondfunction("R")
人生苦短,我学R
>>> mysecondfunction("python")
人生苦短,我学python
对于.format()字符串格式化的使用,请看Python的基本数据类型
我们可以发现,当我们通过参数传入不同的内容时,函数会根据我们的需求,打印出我们想要的结果,是不是很神奇?
三,函数的返回值
老规矩,为什么会有函数返回值的存在呢:
顾名思义,我们执行函数要的就是其返回值。return语句用来结束函数并将程序返回到调用函数的位置,继续执行下面的程序。
## 很简单,只需要在函数中使用关键字return,后面跟着指定要返回的值
>>> def add(a,b):
return a + b
>>> add(1,3)
4
四,函数参数的具体理解
参数既然能神奇的让函数变得个性化,自然它的灵活度就决定了函数的灵活度。下面谈谈我对函数参数的一些理解。
1,形参和实参:
跟绝大多数编程语言一样,形参指的就是创建函数时,小括号里的参数,实参就是你实际递给括号里的参数
## 形参就是括号里的language
>>> def mysecondfunction(language):
print("人生苦短,我学{}".format(language))
## “R”就是我们传给函数的实参
>>> mysecondfunction("R")
人生苦短,我学R
2,关键字参数:
普通的参数叫位置参数,顾名思义就是参数有顺序,我们要按照括号里给定的参数顺序传递给函数。但是这样又有问题,假如我们粗心记错了参数的顺序,传入参数的顺序不正确怎么办?关键字参数给了一个好的解决办法。
>>> def play(name = "keyangou" , game = "LOL"):
print(name + " play " + game)
>>> play("老王" , "王者荣耀")
老王 play 王者荣耀
>>> play("王者荣耀" , "老王")
王者荣耀 play 老王
>>> play(game = "王者荣耀" , name = "老王")
老王 play 王者荣耀
当我们指定关键词的时候,就不用担心顺序问题啦~~~~
3,默认参数
默认参数很好理解,就是在括号里给形参一个默认值,使得在调用函数时,即使不填写该参数,也不会报错,并且以给定的默认值执行函数。
>>> def play(name = "keyangou" , game = "LOL"):
print(name + " play " + game)
keyangou play LOL
注意 :大家创建的函数有默认参数时,一定要把默认参数放在最后!
4,收集参数
收集参数为什么会存在?
作者写函数的时候,也不知道函数到底需要几个参数....所以,这种情况仅需在参数前面加上星号(*)即可
>>> def test(*params):
print("有{}个参数".format(params))
print("第二个参数是:",params[1])
>>> test("G" , "o","l","d")
有('G', 'o', 'l', 'd')个参数
第二个参数是: o
注意:在使用收集参数时,收集参数后面的参数一定要用关键参数来指定,否则python都会把你的实参列入收集参数的范畴!