程序猿大战Python——函数——拆包和交换变量值与引用

拆包

==目标:==了解拆包的使用。

先来看看在现实生活中的拆包。比如,张同学背着背包来教室上课后,需要从背包中拿出电脑、鼠标、数据线、电源线等,这个过程就是拆包!

接着,看一下在Python程序中的拆包:把组合形成的元组形式的数据,拆分出单个元素内容。

变量名1,变量名2,... = 结果

例如,一起来完成:

(1)在一个函数中,使用return返回求解两个数的和、差;

(2)使用items()方式遍历处理字典中存储的学生信息各个键与值;

(3)分别使用拆包方式来拆分数据。

# 1.定义函数, 返回多个数据
# def get_sum_sub(a, b):
#     sum = a + b
#     sub = a - b
#     return sum,sub
​
# result = get_sum_sub(560,89)
# print(result)  # (649, 471)
# result[0]
# result[1]
​
# ret1, ret2 = get_sum_sub(560,89)
# print(f"和为:{ret1}")
# print(f"差为:{ret2}")
​
# 2.items()处理
student = {"name": "马云", "age": 28, "gender": "男"}
# for item in student.items():
#     # print(item)  # ('name', '马云')
#     key = item[0]
#     value = item[1]
​
# for (key,value) in student.items():
for key,value in student.items():print(f"{key} --> {value}")

==总结:==

(1)当要把一个组合的结果快速获取元素数据时,可以使用拆包来完成;

(2)注意:对列表、元组数据结果,都可以使用拆包方式。

交换变量值

==目标:==掌握交换变量值的使用。

使用拆包方式可以用于交换变量的值。

例如,一起来完成:

(1)有变量a、b,请完成变量之间值的交换;

(2)使用引入第三方变量的形式完成数值的交换;

(3)使用拆包方式完成数值交换。

# 1.拆包 -互换两个数位置
a = 10
b = 98
b, a = (a,b)
print(f"变量a={a}, b={b}")
# (a,b) = (b,a)
# 2.求最大最小值
# data = [12,3,14,56,7,0,1,-199]
# data = [12,3,14,56,7,100,1,199]
# # 1.先入为主;   2.简化操作
# # 最大值
# max_value = data[0]
# # 最小值
# min_value = data[0]
# # min_value = 0
# for temp in data:
#     if max_value < temp:
#         max_value = temp
#     if min_value > temp:
#         min_value = temp
# print(f"最大值:{max_value}")
# print(f"最小值:{min_value}")

==总结:==

(1)交换两个变量的方式较多,但最简单的是:直接使用拆包方式交换值。

了解引用

==目标:==了解什么是引用?

引用可以通俗的称为内存地址值。在Python中,引用有两种表现形式:

(1)十进制数 5040624

(2)十六进制数 0x45AC6 [后期讲解]

注意:在Python中,变量值是通过引用来传递的。

查看引用语法:

id(变量名)

说明:

我们可以把id()值理解为变量所在内存的地址值。

例如,一起来完成:

(1)定义一个变量a,查看变量的引用值;

(2)思考:有两个列表变量[1, 2],分别使用==和is去比较,结果如何?

# 1.定义变量,查看引用
# a = 10
# print(a)
# print(id(a))  # 140704783964096
# 明确: 内存地址值是随机分配
​
# 2.==  is
# is比较的是内存地址值
# ==比较内容值
alist = [1,2]
blist = [1,2]
print(alist == blist)  # True
print(alist is blist)  # False
print(id(alist))
print(id(blist))

==总结:==

(1)当要查看一个变量的内存地址值时,可以使用()函数;==A、id()==;B、position()

(2)注意:比较两个变量的值是否相等时,使用==;比较两个变量的内存地址值是否相同时,使用is关键字。

把引用当做参数传递

==目标:==了解引用的传递。

我们知道,当定义函数时设定了参数,则在调用函数时也需要传递参数值。

而实际上,当给函数传递参数时,其本质就是:把引用当做参数进行传递。

例如,一起来完成:

(1)定义有一个参数的函数,并在调用函数时传递一个参数值;

(2)同时输出参数值与在函数内的参数的引用值,对比效果。

# 1.定义有参数的函数
def func(a):print("====================")print(f"a的引用值:{id(a)}")print("====================")
​
# 2.外面输出、函数内输出
number = 100
print(id(number))  # 140704783966976
func(number)
# 140704783966976
# ====================
# a的引用值:140704783966976
# ====================

==总结:==

(1)当把变量传递给函数时,本质上是:传递变量的引用值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853691.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阅读笔记:明朝那些事儿太监弄乱的王朝

阅读豆评高分作品《明朝那些事儿太监弄乱的王朝》第三部&#xff0c;截止到今天告一段落了&#xff0c;前两部皇帝&#xff0c;太子相对比较少&#xff0c;了解故事的主线&#xff0c;分支不算多&#xff0c;记忆起来还能应付过来&#xff0c;第三部皇帝&#xff0c;太子更换的…

R语言数据分析案例29-基于ARIMA模型的武汉市房价趋势与预测研究

一、选题背景 房地产行业对于国民经济和社会及居民的发展和生活具有很大的影响&#xff0c;而房价能够体现经济运转的好坏&#xff0c;因而房价的波动牵动着开发商和购房者的关注&#xff0c;城市房价预测是一个研究的热点问题&#xff0c;研究房价对民生问题具有重要意义。 …

拍抖音素材段子去哪里找?哪里有搞笑段子文案以及视频素材?

拍抖音视频非常火爆&#xff0c;很多人都在为找素材发愁。别担心&#xff0c;今天我给大家推荐几个非常不错的网站&#xff0c;保证你们找到满满的灵感&#xff0c;拍出更有趣的段子视频&#xff01; 蛙学府 首先要推荐的是蛙学府。这个网站不仅素材多&#xff0c;还提供各种段…

监控室,屏幕显示不支持码流

1号屏&#xff0c;出现不支持码流 如下原因 老是录像机 无法关闭自动添加摄像头功能&#xff0c; 其他杂牌摄像头 会自动还ip 最终导致 ip冲突 更换ip 可以解决

Base64编码的工作原理与实际应用

目录 前言 一、什么是Base64编码&#xff1f; 二、Base64编码的原理 三、Base64编码的应用场景 四、为什么要使用Base 64 五、Base64加密解密的实现 前言 当你需要将二进制数据转换为可传输和存储的文本格式时&#xff0c;Base64编码是一个常用的选择。在这篇博客中&#…

Qwen2大语言模型微调、导出、部署实践

上篇文章&#xff1a; Qwen1.5大语言模型微调实践_qwen1.5 7b微调-CSDN博客 我们介绍了Qwen1.5 大语言模型使用LLaMA-Factory 来微调&#xff0c;这篇文章我们介绍一下微调后模型的导出、部署。 一、模型导出 在webui 界面训练好模型之后点击“Export”选项卡&#xff0c;然…

Qt 实战(4)信号与槽 | 4.1、信号与槽机制

文章目录 一、信号与槽机制1、基本概念2、信号与槽函数连接2.1、connect宏实现信号与槽连接2.2、Qt5新connect函数2.3、使用函数指针2.4、使用lambda表达式2.5、使用Qt Creator添加信号的槽函数 3、结论 前言&#xff1a; Qt信号与槽机制是一种用于处理对象间通信的强大机制&am…

快速LLaMA:面向大型语言模型的查询感知推理加速 论文摘要翻译与评论

论文摘要翻译与评论 论文标题&#xff1a; QuickLLaMA: Query-aware Inference Acceleration for Large Language Models 提出的框架 我们Q-LLM框架的示意图。来自记忆上下文的输入被分割成记忆块&#xff0c;通过查询感知的上下文查找来搜索与查询相关的块。目前的键值缓存…

ATMEGA16读写24C256

代码&#xff1a; #include <mega16.h> #include <stdio.h> #include <i2c.h> #include <delay.h> // Declare your global variables here #define EEPROM_BUS_ADDRESS 0xa0 #asm.equ __i2c_port0x15.equ __sda_bit1 .equ __scl_bit0 #endasm uns…

【深度学习】TCN,An Empirical Evaluation of Generic Convolutional【二】

文章目录 膨胀卷积什么是膨胀卷积膨胀卷积公式PyTorch代码 从零开始手动实现一个1D膨胀卷积&#xff0c;不使用PyTorch的nn.Conv1d1. 基本概念2. 手动实现1D膨胀卷积 TCN结构如何使用TCN源码说明1. Chomp1d 类2. TemporalBlock 类3. TemporalConvNet 类 使用方法 膨胀卷积 什么…

DC/AC电源模块:为电动车充电基础设施提供高效能源转换

BOSHIDA DC/AC电源模块&#xff1a;为电动车充电基础设施提供高效能源转换 DC/AC电源模块是一种用于电动车充电基础设施的重要组件&#xff0c;它能够实现高效能源转换。在电动车的普及和推广过程中&#xff0c;DC/AC电源模块的重要性日益凸显。本文将从DC/AC电源模块的基本原…

281 基于matlab的路径规划GUI交互

基于matlab的路径规划GUI交互。包括蚁量系统、蚁周系统、蚁密系统、蚁群系统、免疫混合算法。11种路径规划数据&#xff0c;最多225个规划点。蚁群和免疫算法的参数可进行设置&#xff0c;使得效果最佳。动态显示可视化规划结果。程序已调通&#xff0c;可直接运行。

JVM 性能分析——jdk 自带命令分析工具(jps/jstat/jinfo/jmap/jhat/jstack)

文章目录 jps&#xff08;Java Process Status&#xff09;&#xff1a;查看正在运行的Java进程jstat&#xff08;JVM Statistics Monitoring Tool&#xff09;&#xff1a;查看 JVM 的统计信息jinfo&#xff08;Configuration Info for Java&#xff09;&#xff1a;实时查看和…

电子电气架构 --- 智能座舱功能应用

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节…

MFC工控项目实例之四在调试目录下创建指定文件夹

承接专栏《MFC工控项目实例之三theApp变量传递对话框参数》 在调试目录Debug下创建DATA、LIB、TEMP三个文件夹 1、SEAL_PRESSURE.h中添加代码 class CSeatApp : public CWinApp { ... public:CString m_Path;CString m_DataPath,m_TempPath,m_LibPath; ... };2、SEAL_PRESSURE…

LabVIEW电子类实验虚拟仿真系统

开发了基于LabVIEW开发的电子类实验虚拟仿真实验系统。该系统通过图形化编程方式&#xff0c;实现了复杂电子实验操作的虚拟化&#xff0c;不仅提高了学生的操作熟练度和学习兴趣&#xff0c;而且通过智能评价模块提供即时反馈&#xff0c;促进教学和学习的互动。 项目背景 在…

R 初级教程之一

IT的发展目前已经相当的内卷&#xff0c;到处都在说24年是将来4年最难的一年&#xff01;确实是&#xff0c;眼下各大厂商都在疯狂的裁员砍掉不营利的业务&#xff0c;收紧业务&#xff0c;不再盲目的扩张。小公司更是水深火热&#xff0c;无以言表。近期有个医院联系让使用R给…

AI Stable diffusion 报错:稳定扩散模型加载失败,退出

可能是内存不够&#xff0c;看看你最近是加了新的大的模型&#xff0c;可以把你的stable-diffusion-webui\models\Stable-diffusion目录下的某个ckpt删除掉&#xff0c;可能ckpt太大&#xff0c;无法加载成功&#xff1b; Stable diffusion model failed to load, exiting 如图…

天阳科技集团北京卡洛其项目管理专家李先林受邀为第十三届中国PMO大会演讲嘉宾

全国PMO专业人士年度盛会 天阳科技集团北京卡洛其项目管理专家李先林先生受邀为PMO评论主办的2024第十三届中国PMO大会演讲嘉宾&#xff0c;演讲议题为“应用软件项目管理标准化实践探讨”。大会将于6月29-30日在北京举办&#xff0c;敬请关注&#xff01; 议题简要&#xff1…

设计模式- 责任链模式Chain of Responsibility(行为型)

责任链模式(Chain of Responsibility) 责任链模式是一种行为模式&#xff0c;它为请求创建一个接收者对象的链&#xff0c;解耦了请求的发送者和接收者。责任链模式将多个处理器串联起来形成一条处理请求的链。 图解 角色 抽象处理者&#xff1a; 一个处理请求的接口&#xf…