python函数与函数进阶

本文详细介绍了Python函数的概念,包括函数定义、参数处理(包括可选参数、默认值和关键字参数)、返回值、说明文档的重要性、嵌套调用、变量作用域以及高级特性如多返回值、传参方式、匿名函数和lambda表达式。
摘要由CSDN通过智能技术生成

函数

函数的定义

注意

  • 参数如果不需要可以省略

  • 返回值不需要也可以省略

  • 函数必须先定义后使用

参数

def add(x, y):
    result = x + y
    print("{x} + {y}的结果是:{result}")

返回值

如果函数没有使用return语句返回数据,函数也有返回值

本质上是返回了None

None相当于False

函数的说明文档

可以给函数添加说明文档,提高理解代码的效率

def add(x, y):
    '''
    接收2个参数并进行这两个参数相加的功能
    :param x:加法操作的第一个数字
    :param y:加法操作的第二个数字
    :return:加法操作的结果
    '''
    result = x + y
    print("两数相加的结果是{result}")
    return result

调用函数的时候,悬停鼠标也可以查看该函数的说明文档

函数的嵌套调用

变量的作用域

局部变量即定义在函数体内部的变量,只在函数体内部生效

全局变量即在函数体内部外部都可以访问的变量

正常在函数体内部无法修改全局变量,若要修改,要添加global关键字

例如:

num = 100
def test():
    # global 关键字声明num是全局变量
    global num
    num = 200
    print(num)

实例

若变量没有初值,可以先设置为None

函数进阶

多返回值

def test_return():
    return 1,"hello"
x,y = test_return()
print(x)        # 1
print(y)        # hello

多种传参方式

定义函数:

def user_info(name,age,gender):
    print(name)
    print(age)
    print(gender)

传参方式:

  • 位置参数

根据函数定义的参数位置来传递参数

user_info("小刘",19,"男")
  • 关键字参数

函数调用时使用”键 = 值“的形式传递参数

作用:可以使函数更加清晰,也清除了参数的顺序要求

user_info(name = "小刘",gender = "男",age = 19)

也可以混合使用:

user_info("男",name = "小刘",age = 19)

但是位置参数必须在关键字参数的前面,关键字参数没有顺序可言

  • 缺省参数

在设计函数的时候可以为参数设置默认值

def user_info(name,age,gender = "男"):
    print(name)
    print(age)
    print(gender)

调用:

user_info("小张",16)
user_info("小天",18,"女")

但是在设置默认值参数的时候,要把带有默认值的参数都放在参数列表的后面

  • 不定长参数

即可变参数,分为两种:

1.位置上

用于不确定调用的时候会传递多少个参数

def user_info(*args):
    print(args)
user_info("TOM")
user_info("MiQiu",2)

传递的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组,args是元组类型,这是位置上的不定长

2.关键字参数

def user_info(**kwargs):
    print(kwargs)
user_info(name = "Liu", age = 19, id = 333)

在传入参数的时候要按照”键 = 值“的形式传入,kwargs会根据”键 = 值“组成字典

匿名函数

1.将函数作为参数传递

def fun(add):
    ret = add(1,2)
    return ret
def add(x, y):
    return x + y

这里没有传递数据,传递的是计算逻辑

2.lambda匿名函数

函数定义:

  • def关键字可以定义带有名称的函数

  • lambda关键字可以定义匿名函数(无名称)

有名称的函数,可以基于名称重复使用;没有名称的匿名函数,只能临时使用一次

lambda 传入参数:函数体(一行代码)

例如:

fun(lambda x, y : x + y)

--------------------------------------------------------------------------------------

若有问题,烦请指出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值