Python---函数的数据---拆包的应用案例(两个变量值互换,*args, **kwargs调用时传递参数用法)

案例:

使用至少3种方式交换两个变量的值

第一种方式:引入一个临时变量


复制代码
c1 = 10
c2 = 2

# 引入临时变量temp
temp = c2
c2 = c1
c1 = temp

print(c1, c2)

第二种方式:使用加法与减法运算交换两个变量的值(不需要引入临时变量)


复制代码
c1 = 10
c2 = 2

c1 = c1 + c2
c2 = c1 - c2
c1 = c1 - c2

print(c1, c2)

第三种方法:只有Python才具有的特性,叫做拆包


复制代码
c1 = 10
c2 = 2

c1, c2 = c2, c1
print(c1, c2)

原理:

第一步:把c2和c1组成一个元组(c2,c1)

第二步:使用拆包特性,把元组中的两个元素分别赋值给c1和c2

相关链接:Python----函数的数据 拆包(元组和字典)-CSDN博客

案例:Python中数据的传递案例

相关链接:Python----函数的不定长参数--包裹位置参数*args、包裹关键字参数**kwargs-CSDN博客


复制代码
def func(*args, **kwargs):
    print(args)
    print(kwargs)


# 定义一个元组(也可以是列表)
tuple1 = (10, 20, 30)
# 定义一个字典
dict1 = {'first': 40, 'second': 50, 'third': 60}
# 需求:把元组传递给*args参数,字典传递给**kwargs
# ① 如果想把元组传递给*args,必须在tuple1的前面加一个*号
# ② 如果想把字典传递给\*\*kwargs,必须在dict1的前面加两个**号
func(*tuple1, **dict1)

相关推荐
阿轲Jackson4 小时前
AttributeError: ‘WebDriver‘ object has no attribute ‘find_element_by_id‘
python·selenium
y = xⁿ5 小时前
【Java八股锁机制的认识】synchronized和reentrantlock区分,锁升级机制
java·开发语言·后端
Fruit_Caller5 小时前
GmSSL 编译与 Qt 项目集成问题排查记录(-lssl-1_1-x64 -lcrypto-1_1-x64)
开发语言·qt
free-elcmacom5 小时前
C++三种参数传递方式:从交换函数看值、指针与引用的区别
开发语言·c++
喵手5 小时前
Python爬虫实战:Apple Music华语榜每日增量追踪与峰值计算!
爬虫·python·爬虫实战·零基础python爬虫教学·apply music·华语榜单·每日增量与峰值计算
bubiyoushang8885 小时前
基于PSO的列车速度优化MATLAB实现
开发语言·人工智能·matlab
烟锁池塘柳05 小时前
【已解决】解决 ModuleNotFoundError: No module named ‘exceptions‘
python·pip
Lw中5 小时前
RAG切片语义割裂怎么办?
python·rag文本分割·大模型应用基础
曹牧5 小时前
C#:线程中实现延时等待
开发语言·c#
aiguangyuan5 小时前
多模态AI实战:CLIP模型原理与代码深度剖析
人工智能·python·机器学习·nlp