python基础语法五-函数

书接上回:

python基础语法一-基本数据类型

python基础语法二-多维数据类型

python基础语法三-类

python基础语法四-数据可视化

1. 函数的创建

(1)格式:

        def 函数名([形参]):

                函数体

                [return xxx]

1

def add(a, b):

    c = a+b

    return c

2. 函数的调用

(1)格式:

result = 函数名(实参)

2

def add(a, b):

    c = a+b

    return c

result = add(5,6)

print(result)

3. 传参的两种方式

(1)方式一:位置传参

定义时:def  函数名(形参1, 形参2):

调用时:函数名(实参1,实参2)

(2)方式二:关键字传参

定义时:def  函数名(形参1, 形参2):

调用时:函数名(形参2=实参2,形参1=实参1)

3

def sub(a, b):

    return a/b

result = sub(b=1,a=2) #关键字传参

print(result)

def add2(a, b):

    return a,b

result = add2(5, 6) #位置传参

print(result)

4. 函数的默认值参数

(1)只有和默认值参数不同时,才需要传递实参

4

def add3(a, b=10):

    return a+b

result1 = add3(5)

result2 = add3(2, 30)

result3 = add3(2,10)

print(result1)

print(result2)

print(result3)

5. 个数可变的位置参数

(1)返回值是元组

(2)格式:*args

5

def func(*a):

    print(a)

func(5)

func(5, 10)

func(5, 10, 15)

6. 个数可变的关键字参数

(1)返回值是字典

(2)格式:**args

6

def func2(**a):

    print(a)

func2(a=2)

func2(a=2, b=3)

func2(a=2, b=3, c=6)

7. 个数可变参数的使用规则

(1)一个函数最多只能存在一个个数可变的位置参数

(2)一个函数最多只能存在一个个数可变的关键字参数

(3)一个函数若同时存在个数可变的位置参数和个数可变的关键字参数,那么个数可变的位置参数必须放在前面,即个数可变的关键字形参不能放在个数可变的位置形参前面

7

def func3(*a, *b): #----报错

    pass

def func4(**a, **b):#----报错

    pass

def func5(**a, *b):#----报错

    pass

def func6(*a, **b):

    pass

8. 其他类型转化为个数可变参数

(1)list转化为位置参数:*

(2)字典转化为关键字参数:**

8

def func7(a, b, c):

    print(a)

    print(b)

    print(c)

lst = [5, 10, 34]

func7(*lst)

dict = {'a':1, 'b':2, 'c':3}

func7(**dict)

9. 函数形参中的*

(1)在形式参数列表中,*之后的形式参数只能通过关键字实参进行传递

9

def func8(a, *, b, c):

    print(a)

    print(b)

    print(c)

func8(5, 6, 7)---报错

func8(5, b=6, c=7)

func8(a=5, b=6, c=7)

10. 局部变量和全局变量

(1)函数体内定义的变量就是局部变量,形参也是局部变量,要想把函数内部定义的局部变量变成全局变量,需要加关键字:global

10

def func9(a, b):

    global c

    c = a+b

    return c

result = func9(5,6)

print(c)

11. 函数递归

11

def func10(n):

    if n==1:

        return 1

    else:

        return n*func10(n-1)

result = func10(3)

print(result)

def func11(n):

    if n<=2:

        return 1

    else:

        return func11(n-1)+func11(n-2)

result = func11(6)

print(result)

  • 25
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值