函数基础知识
在python中,一切都是对象,函数(function)也不例外。函数其实就是一台机器,能够把我们放进去的材料转化成想要的物品。
其实我们对函数并不陌生。我们平时用到的print()、input()等后面带括号的语句都是函数。Python中除了内置函数和库函数之外,还支持自定义函数,也就是用户自己写的函数。
函数的定义
我们可以使用def关键字定义一个函数。
比如:
def test_1():
print("My name is Icey")
其中,test_1是函数名,后面要跟一个括号和一个冒号。冒号后跟着的语句就是函数的内容,也就是调用函数时执行的语句。
函数的调用
定义函数后,用户可以通过函数名来调用函数。调用方法如下:
def test_1():
print("My name is Icey")
test_1()
变量的作用域
变量可以时局部变量,也可以时全局变量。局部变量只在它所作用的区域(如函数)内有效,而全局变量在整个程序内都有效。
函数的参数与返回值
就像所有函数一样,自定义函数也可以接收参数。例如在使用print()函数的时候,括号中的内容就是这个函数接收的参数。
假设我们要写一个函数sum2,要求这个函数能够把用户输入的2个数字加起来,并打印出这个值。这时候,函数就需要接收参数。
def sum2(a, b):
c = a+b
print(c)
实参与形参
还是那个比喻,函数就像一台机器,有时你可以把不同的原材料放进去,以生产出新的物品。
在函数里,原材料就是实参,接收原材料的管道就是形参。在制造机器之前我们必须想好机器要生产的产品是什么(函数的功能)、需要用到几种材料(参数的数量)、分别是什么材料(参数的类型),以及要怎么使用它们(函数语句)。
比如:
def sum3(a, b, c): #在这个函数中,a、b和c就是形参(形式参数)
print(a+b+c)
sum3(3,4,5) #此处,3、4和5就是实参(实际参数)
可变参数
python中的可变参数指的是不限制数量的参数。如果需要函数接收可变参数,则可以在形参前加上一个星号(封装成tuple)或两个星号(封装成字典)。
def haha(*b):
print(b)
haha("hajsh", "alkdflf")
上面的例子会输出一个元组(tuple),由传入haha函数的两个参数组成。
如果需要在可变参数之后加入其他不可变参数,则需要强制为这些参数进行命名。
def hehe(*a, b, b1, c):
print(a)
print(b+b1+c)
hehe('af', 'liasgs', b=3, b1=4, c=5)
Lambda表达式
lambda表达式可以被用来定义一个简单的函数。
f = lambda a, b, c:a+b+c
f(2, 3, 4)
其中,a、b和c是形参,a+b+c是函数的内容,f是函数名。