python函数的参数可以接收哪些类型数据_python函数的参数操作,解包

本文详细介绍了Python函数参数的使用,包括位置参数、默认值参数、关键字参数、强制关键字参数、可变参数和可变关键字参数。通过实例解析了各种参数的调用方式和作用,强调了提高代码可读性的技巧。同时,讲解了解包概念,展示了如何通过解包将组合数据类型拆分传入函数。
摘要由CSDN通过智能技术生成

一、函数的基本参数

1.位置参数

调用执行时,传递的实参按照位置顺序给形参进行赋值

def test1(p1,p2,p3):

print(p1,p2,p3)

test1(10,20,30)

2.默认值参数

定义参数是,可以给参数赋值;如果函数参数中出现了默认值参数~一般默认值参数放在普通参数的后面

def test2(n1, n2, opra="+"):

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.实参强制关键字参数

【提高代码的可读性】

实参传递数据是,形参中* 后面的所有参数~都要使用k=v的关键字参数方式传递数据

def test4(*,p1,p2,p3)

print(p1,p2,p3)

test4(p1= 10,p2=20,p3=30)

二、函数参数进阶

5.可变参数

函数在执行过程中,可以接受0~N个参数

def test(*args)

print("可变参数,在普通参数前面添加一个符号")

print("test()函数就可以接收0~N个参数进行操作")

print(args)

for x in args:

print(x)

test()

test("hello")

test("hello", "jerry")

test(1, 3, 5)

test(1, 1, 2, 3, 5, 8, 13, 21)

6.可变关键字参数

(1)可变关键字参数,就是在普通参数的 前面添加符号 **

(2)可变关键书参数,可以接受多个k=v的参数数据;并且可以接受0~n个k=v的数据,将数据包含在“字典”中

def test2(**kwargs)

print(kwargs,kwargs.get("name"))

test2(name="tom")

test2(name="shuke", age=62)

test2(name="jerry", age=18, gender="男")

#输出结果

{'name': 'tom'} tom

{'name': 'shuke', 'age': 62} shuke

{'name': 'jerry', 'age': 18, 'gender': '男'} jerry

7.函数的参数:万能形参

号称可以及诶手任何参数:满足规范的情况下

def test(*args,**kwargs)

print(args,kwargs)

test3()

test3("hello")

test3("hello", name="jerry")

test3("hello", "world", name="tom")

test3(name="tom")

#输出结果

() {}

('hello',) {}

('hello',) {'name': 'jerry'}

('hello', 'world') {'name': 'tom'}

() {'name': 'tom'}

三、解包

解包:将组合数据类型拆分

def test(p1,p2):

print(p1,p2)

#正常调用

test(10,20)

#非正常调用:列表解包

nums = [10, 20]

# 列表参数前面添加一个*符号,表示将列表拆分成一个一个独立的数据传递

test(*nums) # test(*nums) -> test(10, 20)

# 非正常调用:字典解包

#字典参数前面添加两个**

nums2 = {"p1": 100, "p2": 200}

test(**nums2) # test(**nums2)-> test(p1=100, p2=200)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值