python认识函数

本文详细介绍了Python函数的基础操作、参数处理及高级用法,包括位置参数、默认值参数、关键字参数等,并探讨了解包技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、函数的基本操作
函数:表示生活中的一种行为
1.函数的定义
def 函数名称(参数列表):   参数列表:表示可以接受0~n个参数
    函数中要执行的代码
    [return 返回结果]    可以有返回结果/没有返回结果
def eat():
    print("模拟执行函数中的代码...")
    print("函数中的代码在执行")
    print("函数中的代码在执行")
    print("函数中的代码在执行")
    print("函数中的代码在执行")
# 执行函数:调用执行:通过函数的名称,直接执行函数中的代码
eat()
# 函数的命名规范:和变量的命名规范一致!
# 见名知意:基本要做到的是~单词全拼,不要担心函数/变量名称太长
# 命名规则:字母、数字、下划线组成,数字不能开头
# 项目规范:《下划线分隔命名法》、驼峰命名法

二、函数的参数
 参数:其实就是一种变量
        是一种特殊的变量:专门给函数接受数据使用的
# 多个参数的操作
def show_msg(name, msg):
    # 留言的函数
    print("%s给您留言了:%s" % (name, msg))

show_msg('tom', '我在未来等你...')

三、函数的返回值
程序
        函数:返回值:返回的(运算)结果
        返回值操作:return关键字

四、变量
变量:临时存储数据的容器:工具!
1. 所有人都可以使用的:全局变量
# 2. 只有当前函数可以使用的变量:局部变量
全局变量:声明在函数外部,当前文件中~从声明开始的所有地方都可以访问的变量
# 局部变量:声明在函数内部,只有当前函数中可以访问的变量;出了函数~谁都解析不了
 global name  # 声明在函数中要使用全局变量 name  函数外部有全局变量时
  global msg   # 在函数中声明定义了一个全局变量 msg 

五、函数中参数的处理
 1 位置参数
def test1(p1, p2, p3):
    print(p1, p2, p3)
按照位置顺序  test1(10, 20, 30)
2 默认值参数:定义函数的参数时,可以给参数赋值
def test2(n1, n2, opra="+"):
#def test(n1, opra="+", n2):
    print("计算n1:[%s]和n2[%s]进行opra[%s]运算" % (n1, n2, opra))
test2(10, 20)
test2(10, 20, "/")

 3. 实参关键字参数[可选]:主要目的是为了提高代码的可读性
def test3(p1, p2, p3):
    print(p1, p2, p3)
test3(10, 20, 30)# 按照默认的位置顺序赋值
test3(p2=20, p1=10, p3=30)# 按照形参名称赋值[可以打乱位置顺序]

4. 实参强制关键字参数:提高代码的可读性
def test4(*, p1, p2, p3):
实参传递数据时,形式参数中符号* 后面的所有参数~都要使用k=v的关键字参数方式传递数据
test4(p1=10, p2=20, p3=30)
    print(p1, p2, p3)

六、参数操作进阶
 1. 可变参数:函数在执行过程中,可以接受0~N个参数
def test(*args):  # args: arguments 参数
print(args)
test("hello", "jerry")
test(1, 1, 2, 3, 5, 8, 13, 21)

2. 可变关键字参数
def test2(**kwargs): # keyword arguments=>kwargs
    print(kwargs,kwargs.get('name'))
test2(name="jerry", age=18, gender="男")

 3. 函数的参数:万能形参
def test3(*args, **kwargs):
    print(args, kwargs)
test3("hello", "world", name="tom")

七、解包
def test(p1, p2):
    print(p1, p2)
非正常调用:列表解包
nums = [10, 20]
# 列表参数前面添加一个*符号,表示将列表拆分成一个一个独立的数据传递
test(*nums)  # test(*nums) -> test(10, 20)

# 非正常调用:字典解包
nums2 = {"p1": 100, "p2": 200}
test(**nums2)  # test(**nums2)-> test(p1=100, p2=200)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值