python基础-函数基础

时间:2022-06-28 18:37:54

一、函数:在进行一些项目时,某些功能会被反复的调用,那么我们就可以把这些功能封装成为函数。需要用这些功能时再调用函数。

二、定义函数

       def 函数名(参数1,参数2,……,参数n):

             语句

            return 表达式

注:(1)这些参数为形参,本质上是个变量。

       (2)return可以不要,默认为 return None。

       (3)def是关键字。

 #两个数的和函数
 def mySum(x1,x2):
        sum = x1 + x2
        return sum

 

三、调用函数(本质上式实参赋值给形参的过程)

      函数名(参数1,参数2,……,参数n)

注:(1)这些参数为实参,本质上是个值。

       (2)实参和形参个数要一致。

 Sum = mySum(1,2)
 print(Sum)

 

四、参数传递

1、关键字参数

 #无关键字参数传递
 def fun1(str,age):
       print(str,age)
 
 fun1("I love python",18)
 fun1(18,"I love python")
#运行结果 I love python 18 18 I love python
#关键字传递
def fun1(str,age):
      print(str,age)

fun1(age = 18,str = "I love python")

#运行结果
I love python 18

 2、默认参数

def fun(str="I love python",age=18):
      print(str,age)

fun1()
fun1("I love python,too",15)

#运行结果
I love python 18
I love python,too 15

注:若要使用默认参数,最好将默认参数放最后

3、不定长参数

     加了(*)的变量存放所有未命名的变量参数,如果在函数调用时没用指定参数,它就是一个空元组。

def fun2(name,*arrs):
        print(name)
        for x in arrs:
                print(x)

fun2("Xiaoming","Xiaohong","Xiaogang","Xiaoxia")

#运行结果
Xiaoming
Xiaohong
Xiaogang
Xiaoxia

   加了(**)存放键值对的参数字典,和*代表的意义类似

def fun3(**kwargs):
        print(kwargs)
        print(type(kwargs))

fun3(x=1,y=2,z=3)

#运行结果
{'x': 1, 'y': 2, 'z': 3}
<class 'dict'>

五、匿名函数

1、概念:不适用def这样的语句定义函数,使用lambda来创建匿名函数。

2、特点:(1)lambda只是一个表达式,函数体比def简单。

                 (2)lambda主体是一个表达式,而不是代码块,仅仅只能在lambda表达式中封装简单的逻辑。

                 (3)lambda函数有自己的命名空间,且不能访问自有参数列表外的或全局命名空间的参数。

3、格式:

              lambda 参数1,参数2,……,参数n:表达式

sum = lambda num1,num2:num1+num2
print(sum(1,2))

#运行结果
3