栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python函数

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python函数

目录

一、函数的创建和调用

1.1 函数的创建

1.2 函数的调用

二、函数的参数传递

2.1 位置实参

2.2 关键字实参

2.3 实参对象类型

三、函数的返回值

四、函数的参数定义

4.1 默认值参数

4.2 个数可变的位置形参

4.3 个数可变的关键字形参

4.4 形参类型的组合和顺序问题

五、变量的作用域

六、递归函数

例1:使用递归函数实现阶乘计算

例2:使用递归函数实现斐波那契数列的计算


函数

函数就是执行特定任务已完成特定功能的一段代码。使用函数可以实现代码的复用,隐藏实现细节,同时提高程序的可读性,便于调试与维护。

一、函数的创建和调用

1.1 函数的创建

def  函数名 ( [ 形式参数 ] ) :

        函数体

        [ return xxx ]

注意:函数的命名也需要遵守标识符命名规则(数字、字母、下划线)

1.2 函数的调用

函数名 ( [实际参数] )

二、函数的参数传递

2.1 位置实参

根据形参对应的位置进行实参传递

  • 使用 * 将序列中的每个元素都转换为位置实参
def fun(a,b,c):
    print('a=',a,end='t')
    print('b=',b,end='t')
    print('c=',c)

fun(10,20,30)
lst=[11,22,33]
fun(*lst)

运行结果

2.2 关键字实参

根据形参名称进行实参传递

def bmi(weight, height):
    x = weight/(height**2)
    return x

'''位置实参'''
print(bmi(48.5, 1.61))
'''关键字实参'''
print(bmi(height=1.61,weight=48.5))

运行结果

  • 使用 ** 将字典中的每个键值对都转换为关键字实参
def fun(a,b,c):
    print('a=',a,end='t')
    print('b=',b,end='t')
    print('c=',c)

fun(a=10,b=20,c=30)
dic={'a':11,'b':22,'c':33}
fun(**dic)

运行结果

2.3 实参对象类型
  • 若实参是不可变对象, 函数体内的修改不会影响实参的值(如字符串等)
  • 若实参是可变对象,函数体内的修改会影响实参的值(如列表等)

三、函数的返回值

return 返回值

  • 若函数没有返回值(函数执行完毕后,不需要给调用处返回数据),return 可以省略不写
  • 若函数的返回值为1个,则返回结果为返回值本身
  • 若函数的返回值为多个,则返回结果为以返回值为元素的元组

函数在定义时,是否需要返回值,视情况而定

四、函数的参数定义

4.1 默认值参数
  • 函数定义时,给形参设置默认值:
    • 调用函数时若未提供对应实参,则使用默认值
    • 只有当实参与默认值不符的时候才需要传递实参

def  函数名 ( 形式参数=默认值 ) :

def fun(a,b=10):
    print(a,b)

fun(100)    # 位置实参100传递给形参a,形参b使用默认值10
fun(100,30)

运行结果

4.2 个数可变的位置形参
  • 定义函数时,若无法事先确定传递位置实参的个数时,使用个数可变的位置形参
  • 使用 * 定义个数可变的位置形参
  • 结果为一个元组

一个函数只能有1个个数可变的位置形参

def  函数名 ( * 形式参数 ) :

4.3 个数可变的关键字形参
  • 定义函数时,若无法事先确定传递关键字实参的个数时,使用个数可变的关键字形参
  • 使用 ** 定义个数可变的关键字形参
  • 结果为一个字典

一个函数只能有1个个数可变的关键字形参

def  函数名 ( ** 形式参数 ) :

注意:定义函数时,若既有个数可变的位置形参,又有个数可变的关键字形参,要求将个数可变的位置形参放在个数可变的关键字形参之前

def  函数名 ( * 形式参数 , ** 形式参数 ) :

4.4 形参类型的组合和顺序问题
def fun1(*args1,**args2):
    pass

def fun2(a,b,*,c,d):  # 要求c,d只能使用位置参数传递
    pass

def fun3(a,b,*,c,d,**args):
    pass

五、变量的作用域

即程序代码能访问该变量的区域。变量根据变量的有效范围分为:

  • 局部变量
    • 在函数体内定义的变量,只在函数体内部有效
    • 局部变量使用 global 声明,即可成为全局变量
  • 全局变量
    • 在函数体外定义的变量,在函数体内部和外部都有效

六、递归函数

即在函数体内调用该函数本身的函数。递归主要由两部分组成:

  • 递归调用条件
  • 递归终止条件

例1:使用递归函数实现阶乘计算
def fun(n):
    if n==1:
        return 1
    else:
        res=n*fun(n-1)
        return res

print('5的阶乘是',fun(5))

运行结果

例2:使用递归函数实现斐波那契数列的计算
def fib(n):
    if n==1 or n==2:
        return 1
    else:
        res=fib(n-1)+fib(n-2)
        return res

print('斐波那契数列第8位的数是',fib(8))


print('斐波那契数列前8位的数是',end='t')
for i in range(1,9):
    print(fib(i),end='t')

运行结果


Flag:我要成为一个日更选手:)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1018014.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号