【Python】12_函数传参的四类参数

简介: ​一、函数传参的四类参数1、位置传参与关键字传参def func(a, b, c): print(f'a:{a}') print(f'b:{b}') print(f'c:{c}')# 位置传参func(1,2,3)# func(3,1,2)# 关键字传参func(a=10, b=20, c=30)# func(c=10, a=20, b=30)# 混合使用, 先写位置传参,再写关键字传参'''先写没等号的,再写有等号的,有等号的要在后边'''func(10, b=20, c=30)# func(a=10, 20, 30) #


一、函数传参的四类参数
1、位置传参与关键字传参

def func(a, b, c):

print(f'a:{a}')
print(f'b:{b}')
print(f'c:{c}')

位置传参

func(1,2,3)

func(3,1,2)

关键字传参

func(a=10, b=20, c=30)

func(c=10, a=20, b=30)

混合使用, 先写位置传参,再写关键字传参

'''先写没等号的,再写有等号的,有等号的要在后边'''
func(10, b=20, c=30)

func(a=10, 20, 30) # 代码会报错

func(10, a=30, b=20) # 代码会报错

2、缺省参数

print()

'''
有等号的在后边写
'''

def func(a, b, c=10): # 形参c 称为缺省形参

print(f"a: {a}")
print(f"b: {b}")
print(f"c: {c}")

func(1, 2) # 没有给c 传递实参,使用默认值10
func(1, 2, 3) # 给c传递实参值,使用传递的数据3

def fun1(a=1, b, c): # 代码报错,语法错误

pass

3、不定长参数(重点)
有两个注意点: 函数定义中的 args 和 kwargs可以是任意的形参变量,不过习惯使用 args 和 kwargs.

print(1)

print(1, 2)

print(1, 2, 3)

print(1, 2, 3, 4)

print(1, 2, 3, 4, 5)

def func(args, kwargs): # 两个普通的形参

print(args)
print(kwargs)

func(1, 2)
func(args=2, kwargs=1)

print('' 30)
print('' 30)

def func(args, *kwargs):

print(args)
print(kwargs)

func(1, 2, 3, 3, 4, 5)
'''(1, 2, 3, 3, 4, 5)
{}'''
func(a=1, b=2, c=3, d=4)
'''()
{'a': 1, 'b': 2, 'c': 3, 'd': 4}'''
func(1, 2, 3, a=4, b=5, d=6)
'''(1, 2, 3)
{'a': 4, 'b': 5, 'd': 6}'''

 重点!!!(下面的)

def func(args, *kwargs):

print('args', args)
print('kwargs', kwargs)

my_list = [1, 2, 3, 4, 5, 6]
my_dict = {'a': 7, 'c': 8, 'b': 9, 'd': 10}

func(my_list) # 将列表作为一个数据进行传递(整体)
'''args ([1, 2, 3, 4, 5, 6],)
kwargs {}'''
func(*my_list) # 将列表中的每一个数据作为位置参数进行传递, 拆包
'''args (1, 2, 3, 4, 5, 6)
kwargs {}'''

func(*my_list ) # 这个会报错,因为本来该是元组的类型,加两个号,该放在字典的位置上,有冲突!

func(my_dict) # 将my_dict 作为一个位置实参进行传递(元组)
'''args ({'a': 7, 'c': 8, 'b': 9, 'd': 10},)
kwargs {}'''
func(*my_dict) # 将my_dict中的key 作为位置实参进行传递(元组)
'''args ('a', 'c', 'b', 'd')
kwargs {}'''
func(**my_dict) # 将my_dict中键值对作为关键字实参进行传递
'''args ()
kwargs {'a': 7, 'c': 8, 'b': 9, 'd': 10}'''

4、应用
def my_sum(args, *kwargs):

num = 0
for i in args:
    num += i  # num = num + i

for j in kwargs.values():
    num += j

print(f"求和的结果为{num}")

my_sum(1, 2, 3, a=4, b=5, c=6) # 21

5、函数参数的完整格式

普通形参 缺省形参 不定长元组形参 不定长字典形参

def func(a, b=1): # 先普通再 缺省

pass

def func1(a, b=1, *args): # 语法上不会报错,但是缺省参数不能使用默认值

print('a', a)
print('b', b)
print(args)

def func2(a, *args, b=1): # 普通形参 不定长元组形参 缺省形参

print('a', a)
print('b', b)
print(args)

def func3(a, args, b=1, *kwargs): # 普通形参 不定长元组形参 缺省形参 不定长字典形参

pass

func1(1, 2, 3, 4)

func2(1, 2, 3, 4)

func2(1, 2, 3, 4, b=10)

6、print函数中的sep

print(1)

print(1, 2)

print(1, 2, 3)

print(1, 2, 3, 4)

print(1, 2, 3, 4, 5)

print(1)
print(1, 2, sep='*')
print(1, 2, 3, sep='_') # 1_2_*_3
print(1, 2, 3, 4, sep='hello')
print(1,2) # 1 2
print(1, 2, 3, 4, 5, sep=' ') # 默认 1 2 3 4 5

二、拆包

相关文章
|
2月前
|
存储 JavaScript Java
(Python基础)新时代语言!一起学习Python吧!(四):dict字典和set类型;切片类型、列表生成式;map和reduce迭代器;filter过滤函数、sorted排序函数;lambda函数
dict字典 Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。 我们可以通过声明JS对象一样的方式声明dict
170 1
|
2月前
|
算法 Java Docker
(Python基础)新时代语言!一起学习Python吧!(三):IF条件判断和match匹配;Python中的循环:for...in、while循环;循环操作关键字;Python函数使用方法
IF 条件判断 使用if语句,对条件进行判断 true则执行代码块缩进语句 false则不执行代码块缩进语句,如果有else 或 elif 则进入相应的规则中执行
266 1
|
2月前
|
Java 数据处理 索引
(numpy)Python做数据处理必备框架!(二):ndarray切片的使用与运算;常见的ndarray函数:平方根、正余弦、自然对数、指数、幂等运算;统计函数:方差、均值、极差;比较函数...
ndarray切片 索引从0开始 索引/切片类型 描述/用法 基本索引 通过整数索引直接访问元素。 行/列切片 使用冒号:切片语法选择行或列的子集 连续切片 从起始索引到结束索引按步长切片 使用slice函数 通过slice(start,stop,strp)定义切片规则 布尔索引 通过布尔条件筛选满足条件的元素。支持逻辑运算符 &、|。
162 0
|
3月前
|
设计模式 缓存 监控
Python装饰器:优雅增强函数功能
Python装饰器:优雅增强函数功能
270 101
|
3月前
|
缓存 测试技术 Python
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
214 99
|
3月前
|
存储 缓存 测试技术
Python装饰器:优雅地增强函数功能
Python装饰器:优雅地增强函数功能
188 98
|
3月前
|
缓存 Python
Python中的装饰器:优雅地增强函数功能
Python中的装饰器:优雅地增强函数功能
|
4月前
|
Python
Python 函数定义
Python 函数定义
514 155
|
3月前
|
JSON 缓存 开发者
淘宝商品详情接口(item_get)企业级全解析:参数配置、签名机制与 Python 代码实战
本文详解淘宝开放平台taobao.item_get接口对接全流程,涵盖参数配置、MD5签名生成、Python企业级代码实现及高频问题排查,提供可落地的实战方案,助你高效稳定获取商品数据。
|
3月前
|
算法 安全 数据安全/隐私保护
Python随机数函数全解析:5个核心工具的实战指南
Python的random模块不仅包含基础的随机数生成函数,还提供了如randint()、choice()、shuffle()和sample()等实用工具,适用于游戏开发、密码学、统计模拟等多个领域。本文深入解析这些函数的用法、底层原理及最佳实践,帮助开发者高效利用随机数,提升代码质量与安全性。
640 0

推荐镜像

更多