13-python函数返回值和装包的后续提取数据方法——解包
1.1 参数解包
不定长参数简单来讲就是装包,把多个参数装到一个元组或者装到字典中,就叫做装包
Ctrl+d可以快速向下复制
传递实参时,也可以在序列类型的参数前添加星号,这样他会自动将序列中的元素依次作为参数传递
注意:序列中元素的个数必须和我们函数中的形参个数一致
def fn(a,b,c):print("a=",a)print("b=",b)print("c=",c)t = (1,2,3)
fn(*t)
fn(*[1,2,3]) # 列表也是可以的
d = {"a":10,"b":20,"c":30} # 字典的key的名字要和形参的名字对上
fn(**d)
*args和**kwargs是可以同时使用的
注意:同时使用这两个的时候,*args必须要写在**kwargs前面,这是规定
def fn(a,b,*args,**kwargs):print(a)print(b)print(args)print(kwargs)fn(1,2,4,3,4,5,1,5,k=1,w=2,aa=3,rr=4)1
2
(4, 3, 4, 5, 1, 5)
{'k': 1, 'w': 2, 'aa': 3, 'rr': 4}
总结:
1.*args适用于接收多余的未命名的位置参数
**kwagrs用于接收关键字参数,其中args是一个元组类型,而kwargs是一个字典类型的数据
2.*args是把元组中的数据进行拆包,也就是把元组中的数据拆成单个的数据
**kwargs是把字典中的数据进行拆包,也就是把字典中的数据拆成单个的键值对
1.2 函数的返回值
我们需要函数将处理的结果反馈回来
返回值:函数执行以后返回的结果
f(x) = 2x+1
x = 1 ——》3 f(1)=3
x = 2 ——》5 f(2)=5
x = 3 ——》7 f(3)=7
获取返回值的方法是:把函数调用当做一个值来输出
def fn():return 1
x = fn()
print(x)
# 或者
print(fn())
return后面是什么,函数返回结果就是什么
无论定义的是返回什么类型,return只能返回单值,但是值可以有多个元素
# 看似返回很多个值,其实会被python隐式的分装成一个元组返回出来
def fn():return 1,2,3
x = fn()
print(x)
# 或者
print(fn())
函数的嵌套
def fn():def fn2():print("hello")print("f")
fn()
# 返回值也可以是返回函数
def fn():def fn2():print("hello")return fn2
r = fn()
r()
返回值可以是任意类型也包括函数
def fn2():pass
print(fn2()) # None代表空值注意:None千万不可以理解为0,如果我们不给一个函数return,那么这个函数的返回值就是空的
None也是有属于自己的数据类型
print(type(None)) #<class 'NoneType'>
对于没有定义return语句的函数,python都会在末尾默认加上return None,表示这个函数默认返回空值,也就是说只要你的函数不带return就是得返回None
# return后面不跟值那么结果也是None
def fn():return
print(fn()) #None
总结:
如果仅仅写一个return或者不写return,就等价于return None
None是python一个特别的空值,用来代表空的
def fn():print("抄一遍")print("抄二遍")print("抄三遍")returnprint("抄四遍")fn()抄一遍
抄二遍
抄三遍在函数中return代表函数执行结束,后面的代码就不会再执行,这就是return
def fn():for i in range(1,101):if i ==66:print("老师心痛了,提前结束")breakprint(f"抄{i}遍")
fn()break:退出当前循环
continue:跳过本次循环
return:用来结束函数
# 函数时用来完成某种功能的,有些功能是需要返回结果
def sum1(*args):result = 0for i in args:result+=ireturn result
r = sum1(1,2,3,4)
print(r+10)a = len("123")
print(a)
fn和fn()的区别:
print(fn) # 其实就是在打印函数对象,也就是内存地址
print(fn()) # 其实就是在打印fn()的返回值
总结:
return语句的作用:
结束函数调用、返回值
函数体中return语句有指定返回值时返回的就是其值
函数体中没有return语句时,函数运行结束会隐含返回一个None作为返回值,类型时NoneType,与return、return None等效,都是返回Noneprint与return的区别:
print仅仅是打印在控制台,而return则是将return后面的部分作为返回值,作为函数的输出,可以赋值给一个变量,继续使用该返回值做其他事return语句在同一函数中可以出现多次,但是只要有一个得到执行,就会直接结束函数的执行None(空值)和False不同,他不表示.,也不表示空字符串,而是表示没有值,也就是空值
None的数据类型是NoneType
None是NoneType数据类型的唯一值
相关文章:
13-python函数返回值和装包的后续提取数据方法——解包
1.1 参数解包 不定长参数简单来讲就是装包,把多个参数装到一个元组或者装到字典中,就叫做装包 Ctrld可以快速向下复制 传递实参时,也可以在序列类型的参数前添加星号,这样他会自动将序列中的元素依次作为参数传递 注意&#x…...
I. 对线
https://codeforces.com/gym/103186/problem/I 一开始感觉操作挺复杂的 但是写过Chino的数列 - 洛谷 发现可以通过矩阵来实现swap操作,就想能不能用线段树维护矩阵来写 有三排兵线,我们维护区间和,因此初始矩阵就有了 接下来分析每个操作的…...
Topsis法模型(评价类问题)
目录 本文章内容参考: 一. 概念 二. 特点和适用范围 三. 实现步骤 四. 代码实现 本文章内容参考: TOPSIS法模型讲解(附matlab和python代码) 【数学建模快速入门】数模加油站 江北_哔哩哔哩_bilibili 一. 概念 TOPSIS(Technique for O…...
HPA 与pod调度
HPA 自动更新工作负载资源(例如 Deployment 或者 StatefulSet), 目的是自动扩缩工作负载以满足需求。 绑定到deploy上,控制pod 依托于metrics-server HorizontalPodAutoscaler 水平pod自动扩缩:意味着对增加的负…...
jupyter下载
https://blog.csdn.net/qq_48372575/article/details/125630622 我下面是CPU运行的,GPU链接在上面 Anaconda下载 https://docs.anaconda.com/miniconda/miniconda-other-installer-links/ 参考链接: https://blog.csdn.net/qq_48372575/article/detai…...
蓝桥杯双周赛 第 16 场 小白入门赛 解题报告 | 珂学家 | 七夕娱乐场
前言 题解 因为这场七夕节,所以出的特别友好。 整体还是偏思维。 T6 额外提供组合数学解,还是蛮有趣的。 A. 喜鹊罢工 题型: 签到 365 可以有多少个 7 组成 365可以有多少个7组成 365可以有多少个7组成 向上取整即可 #include <iostream>usi…...
[C++] 深入理解面向对象编程特性 : 继承
文章目录 继承的概念与定义继承的定义定义格式不同继承方式与继承的基类中访问限定符间的影响C中的继承和访问控制总结父类的private成员在子类中的访问限制protected成员的使用场景成员访问方式总结继承方式的默认值实际应用中的继承方式 示例代码 OOP中类之间的关系“is a” …...
汇昌联信科技做拼多多电商怎么引流?
在互联网经济高速发展的今天,电商平台如雨后春笋般涌现,其中拼多多以其独特的社交电商模式迅速崛起。对于汇昌联信科技而言,如何在拼多多平台上有效引流,成为提升销量和品牌知名度的关键。本文将深入探讨汇昌联信科技在拼多多电商…...
公网ip和私网ip的区别
1.接入方式不同\n公网IP以公网连接Internet上的非保留地址,私网IP则是局域网上的IP,通过NAT才能够与公网进行通信。 2.特点不同\n公网IP由国际互联网络信息中心InterNIC负责,将IP地址分配给注册并向InterNIC提出申请的机构或组织。私网IP则是为节省可分…...
【开发踩坑】windows查看jvm gc信息
windows查看jvm gc信息 EZ 找出java进程PID 控制面板----搜索任务管理器---- 任务管理器----搜索 java----详细信息 这里PID是4856 cmd jstat gc面板 reference: jstat命令...
时间序列预测 | CEEMDAN+CNN+Transformer多变量时间序列预测(Python)
目录 效果一览基本介绍程序设计参考资料 效果一览 基本介绍 时间序列预测 | CEEMDANCNNTransformer多变量时间序列预测(Python) 时间序列预测 创新点 多尺度特征提取:CEEMDAN将复杂的时间序列分解成多个IMFs,使得CNN和Transforme…...
vue3--实现vue2插件JSONPathPicker的路径获取功能
背景 最近在进行vue2项目升级为vue3。 在项目中需要获取json某些字段的路径,vue2中使用JSONPathPicker ,但是该插件不支持vue3,vue3中也没有相应的模块有该功能。 实现目标: 原vue2中JSONPathPicker实现的功能: 查…...
SuccBI+低代码文档中心 — 可视化分析(仪表板)(上)
有关仪表板的设计器: 查询设置 由于仪表板的设计器是所见即所得的,可以将当前制作的内容和数据的查询结果实时展示在界面中,当引入到仪表板的模型数据量较大时,为了提高设计器界面的查询性能,提供了以下两种方法&…...
P3156 【深基15.例1】询问学号
昨天我发布了关于数据结构线性表的学习知识(【数据结构】顺序表-CSDN博客)。所谓“纸上得来终觉浅”,光看不练可不行,下面我们来看一下顺序表的习题。 题目链接 【深基15.例1】询问学号 - 洛谷 题目解读 题目描述了一个场景&…...
详解Xilinx FPGA高速串行收发器GTX/GTP(5)--详解8B10B编解码
目录 1、8B/10B编码是什么? 2、8B/10B编码的规则 3、两个例子 4、GTX的8B/10B编码 5、Verilog实现 文章总目录点这里:《FPGA接口与协议》专栏的说明与导航 1、8B/10B编码是什么? 简单来说,8B/10B编码就是将原本是8bits的数据,按照一定的规则扩展编码到10b…...
python 画多盘的写放大曲线方法
在服务器测试中我们经常会遇见客户要求画出每个SSD的WAF曲线,也就是写放大,通常的做法就是我们每隔10分钟记录一下每个SSD的host写入量和nand写入量,下面我们介绍一下python处理多盘的WAF的做法 如图所示 假设这是一个记录多盘的写入量信息的…...
计算机网络TCP/UDP知识点
这是一些在学习过程中关于计算机网络八股文的一些知识点记录: TCP/UDP TCP怎么保证可靠性 1.序列号,确认应答,超时重传 数据到达接收方,接收方需要发出一个确认应答,表示已经收到该数据段,并且确认序号…...
JavaScript 文档元素获取
目录 通过id获取文档元素 任务描述 相关知识 什么是DOM 文档元素 节点树 通过id获取文档元素 编程要求 通过类名获取文档元素 任务描述 相关知识 通过类名获取文档元素 编程要求 通过标签名获取文档元素 任务描述 相关知识 通过标签的名字获取文档元素 获取标…...
docker pull实现断点续传
问题背景 在使用Docker拉取DockerHub的镜像时,经常会出现网络不稳定的问题,这就导致拉取到一半的镜像会重新拉取,浪费时间。例如下面这种情况: 第二次拉取 这是一个网络中断的场景,第二次重新拉取的时候,同…...
无字母数字webshell之命令执行
源码 题目限制: webshell长度不超过35位除了不包含字母数字,还不能包含$和_ 这里使用php5来解决 可以围绕以下两点展开: shell下可以利用.来执行任意脚本Linux文件名支持用glob通配符代替 .或者叫period,它的作用和source一样…...
Linux 文件类型,目录与路径,文件与目录管理
文件类型 后面的字符表示文件类型标志 普通文件:-(纯文本文件,二进制文件,数据格式文件) 如文本文件、图片、程序文件等。 目录文件:d(directory) 用来存放其他文件或子目录。 设备…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件
今天呢,博主的学习进度也是步入了Java Mybatis 框架,目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学,希望能对大家有所帮助,也特别欢迎大家指点不足之处,小生很乐意接受正确的建议&…...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
DAY 47
三、通道注意力 3.1 通道注意力的定义 # 新增:通道注意力模块(SE模块) class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
Xen Server服务器释放磁盘空间
disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...
GruntJS-前端自动化任务运行器从入门到实战
Grunt 完全指南:从入门到实战 一、Grunt 是什么? Grunt是一个基于 Node.js 的前端自动化任务运行器,主要用于自动化执行项目开发中重复性高的任务,例如文件压缩、代码编译、语法检查、单元测试、文件合并等。通过配置简洁的任务…...
springboot 日志类切面,接口成功记录日志,失败不记录
springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...
