广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 变量教程之打包和解包参数
  • 635
分享到

Python 变量教程之打包和解包参数

2024-04-02 19:04:59 635人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录背景 解 Packing 打包和拆包 用于字典前言: 我们使用两个运算符 *(用于元组)和 **(用于字典)。 背景  考虑这样

前言:

我们使用两个运算符 *(用于元组)和 **(用于字典)。

背景 

考虑这样一种情况,我们有一个接收四个参数的函数。我们想调用这个函数,我们有一个大小为 4 的列表,其中包含函数的所有参数。如果我们只是将一个列表传递给函数,则调用不起作用。

# 一个演示打包和解包需求的 python 程序

# 一个接受 4 个参数并打印它们的示例函数。
def fun(a, b, c, d):
	print(a, b, c, d)

# 驱动程序代码
my_list = [1, 2, 3, 4]

# 这不起作用
fun(my_list)

输出 :

TypeError: fun() takes exactly 4 arguments (1 given)

解 

包我们可以使用 ***** 来解包列表,以便它的所有元素都可以作为不同的参数传递。

# 一个带有 4 个参数并打印的示例函数,
def fun(a, b, c, d):
	print(a, b, c, d)

# 驱动程序代码
my_list = [1, 2, 3, 4]

# 将列表解压缩为四个参数
fun(*my_list)

输出 :

(1, 2, 3, 4)

我们需要记住,参数的数量必须与我们为参数解包的列表的长度相同。

# 当 len(args) != 函数所需的实际参数没有时出错

args = [0, 1, 4, 9]
def func(a, b, c):
	return a + b + c
# 使用解包参数调用函数
func(*args)

输出:

Traceback (most recent call last):
  File "/home/592a8d2a568a0c12061950aa99d6dec3.py", line 10, in <module>
    func(*args)
TypeError: func() takes 3 positional arguments but 4 were given

作为另一个示例,考虑需要单独的开始和停止参数的内置 range() 函数。如果它们不能单独使用,请使用 *-operator 编写函数调用以将参数从列表或元组中解包出来:

>>>
>>> range(3, 6) # 带有单独参数的正常调用
[3, 4, 5]
>>> args = [3, 6]
>>> range(*args) # 使用从列表中解包的参数调用
[3, 4, 5]

Packing 

当我们不知道需要将多少个参数传递给 Python 函数时,我们可以使用 Packing 将所有参数打包到一个元组中。

# 演示打包使用的 Python 程序

# 此函数使用打包来汇总未知数量的参数
def mySum(*args):
	return sum(args)

# 驱动程序代码
print(mySum(1, 2, 3, 4, 5))
print(mySum(10, 20))

输出:

15 
30

上述函数 mySum() 执行“打包”以将此方法调用接收到的所有参数打包到一个变量中。一旦我们有了这个“打包”变量,我们就可以用它来做我们用普通元组做的事情。args[0] 和 args[1] 会分别给你第一个和第二个参数。由于我们的元组是不可变的,您可以将 args 元组转换为列表,以便您还可以修改、删除和重新排列 i 中的项目

打包和拆包 

下面是一个显示打包和拆包的示例。

# 一个 Python 程序,用于演示打包和解包。

# 一个示例 python 函数,它接受三个参数并打印它们
def fun1(a, b, c):
	print(a, b, c)

# 另一个示例函数。
# 这是包装的一个例子。 传递给 fun2 的所有参数都打包到元组 *args 中。
def fun2(*args):

	# 将 args 元组转换为列表,以便我们修改它
	args = list(args)

	# 修改参数
	args[0] = 'Haiyong'
	args[1] = 'awesome'

	# 拆包参数并调用 fun1()
	fun1(*args)

# 驱动程序代码
fun2('Hello', 'beautiful', 'world!')

输出:

(Haiyong, awesome, world!)

用于字典

# 演示使用 ** 解包字典项的示例程序
def fun(a, b, c):
	print(a, b, c)

# 解包字典的调用
d = {'a':2, 'b':4, 'c':10}
fun(**d)

输出:

2 4 10

这里 ** 解压了与它一起使用的字典,并将字典中的项目作为关键字参数传递给函数。所以写“fun(1, **d)”就相当于写“fun(1, b=4, c=10)”。

# 一个 Python 程序,用于演示使用 ** 打包字典项
def fun(**kwargs):

	# kwargs 是一个字典
	print(type(kwargs))

	# 打印字典项目
	for key in kwargs:
		print("%s = %s" % (key, kwargs[key]))

# 驱动程序代码
fun(name="geeks", ID="101", language="Python")

输出:

<class 'dict'>
name = geeks
ID = 101
language = Python

应用和要点 :

  • 在套接字编程中用于向服务器发送大量请求。
  • Django 框架中用于将变量参数发送到视图函数。
  • 有些包装函数需要我们传入可变参数。
  • 参数的修改变得容易,但同时验证不正确,因此必须小心使用它们。

到此这篇关于Python 变量教程之打包和解包参数的文章就介绍到这了,更多相关Python 打包解包参数内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Python 变量教程之打包和解包参数

本文链接: https://www.lsjlt.com/news/120032.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 变量教程之打包和解包参数
    目录背景 解 Packing 打包和拆包 用于字典前言: 我们使用两个运算符 *(用于元组)和 **(用于字典)。 背景  考虑这样...
    99+
    2022-11-11
  • 习题13:参数,解包,变量
    练习下面的程序,后面将看到详细解释代码如下# coding: utf-8 __author__ = 'www.py3study.com' from sys impo...
    99+
    2023-01-30
    习题 变量 参数
  • Go基础教程系列之import导入包(远程包)和变量初始化详解
    import导入包 搜索路径 import用于导入包: import ( "fmt" "net/http" "mypkg" ) 编译器会根据上面指定的相对路...
    99+
    2022-11-13
  • Python变量教程之全局变量和局部变量
    目录前言全局变量全局关键字前言 全局变量是那些没有在任何函数内部定义并具有全局范围的变量,而局部变量是那些在函数内部定义的变量,其范围仅限于该函数。换句话说,我们可以说局部变量只能在...
    99+
    2022-11-11
  • python元组打包和解包过程详解
    在将多个以逗号分隔的值赋给一个变量时,多个值被打包成一个元组类型。当我们将一个元组赋给多个变量时,它将解包成多个值,然后分别将其赋给相应的变量。 # 打包 a = 1, 10, 100 print(type(a)...
    99+
    2022-06-02
    python 元组 打包 解包
  • Python学习之os包使用教程详解
    目录os 模块文件与目录函数介绍path 模块​path 模块常用方法今天我们来学习一下 python 的内置包 —> OS 包。OS 包拥有着普遍的操作系统功能,...
    99+
    2022-11-13
  • python中元组打包和解包的过程分析
    这篇文章主要讲解了“python中元组打包和解包的过程分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python中元组打包和解包的过程分析”吧!在将多个以逗号分隔的值赋给一个变量时,多个...
    99+
    2023-06-20
  • Python 基础教程之包和类的用法
    Python 基础教程之包和类的用法 建立一个文件夹filePackage 在filePackage 文件夹内创建 __init__.py 有了 __init__.py ,filePackage才算...
    99+
    2022-06-04
    基础教程 Python
  • Python学习之时间包使用教程详解
    目录datetime 时间包datetime 时间包的常用功能时间对象转字符串时间字符串转时间类型时间格式符time模块认识时间戳time 模块的常用方法datetime 中生成时间...
    99+
    2022-11-13
  • Python入门教程之变量与数据类型
    目录一、 Python变量与数据类型1.变量概述2.创建变量3.Python3常用的数据类型3.1.数字(Numbers)3.2.字符串(String)3.3.列表(list)3.3...
    99+
    2022-11-13
  • Python基础教程之pytest参数化详解
    目录前言源代码分析装饰测试类装饰测试函数单个数据一组数据组合数据标记用例嵌套字典增加测试结果可读性总结前言 上篇博文介绍过,pytest是目前比较成熟功能齐全的测试框架,使用率肯定也...
    99+
    2022-11-12
  • pyqt5数据库使用教程(打包解决方案)
    7.关于pyinstaller打包生成exe的方法 安装pip 、 pyinstaller 在pycharm 的Terminal窗口中输入 pyinstaller -F -w main.py 注:输入参数的含义 -F ...
    99+
    2017-04-09
    pyqt5数据库使用教程(打包解决方案)
  • 在 Unix 系统中,Python 数组如何实现打包和解包?
    Python 是一种高级编程语言,它的数组支持打包和解包操作。在 Unix 系统中,Python 数组可以使用 struct 模块进行打包和解包。本文将介绍如何使用 Python 数组在 Unix 系统中实现打包和解包操作。 首先,让我们...
    99+
    2023-11-02
    数组 unix 打包
  • 如何在Python中高效地打包和解包数据类型?
    在Python中,打包和解包数据类型是一个常见的任务。打包是指将数据转换为二进制格式,解包则是将二进制数据解析回原始数据类型。在本文中,我们将讨论如何在Python中高效地完成这些任务。 Python提供了几种内置的打包和解包数据类型的方法...
    99+
    2023-10-13
    数据类型 打包 shell
  • Go基础教程系列之回调函数和闭包详解
    Go回调函数和闭包 当函数具备以下两种特性的时候,就可以称之为高阶函数(high order functions): 函数可以作为另一个函数的参数(典型用法是回调函数)函数可以返回另...
    99+
    2022-11-13
  • 如何使用 Python 数组在 Unix 环境中打包和解包数据?
    Python 是一种流行的编程语言,它在 Unix 环境下提供了一种简单的方法来打包和解包数据。本文将介绍如何使用 Python 数组在 Unix 环境中打包和解包数据,同时会给出一些演示代码,帮助读者更好地理解相关概念。 什么是打包和解...
    99+
    2023-11-02
    数组 unix 打包
  • Python编程中闭包的变量作用域问题解析
    目录闭包闭包中的变量闭包 ​ 在我们使用返回函数的时候,由于我们在一个函数中需要返回另一个函数,因此,我们在这个函数中就需要重新定义一个函数。而这样,就造成了我们的函数嵌...
    99+
    2022-11-12
  • Unix 环境下,如何使用 Python 数组进行数据打包和解包?
    Unix 环境下,Python 是一个广泛使用的编程语言。Python 中数组是一种非常强大的数据结构,它可以存储不同类型的数据。在本文中,我们将探讨如何使用 Python 数组进行数据打包和解包。 Python 数组中的元素可以是任何类型...
    99+
    2023-11-02
    数组 unix 打包
  • python之pyinstaller组件打包命令和异常解析实战
    项目场景: Python版本:3.8 因公司业务需求,须开发一套局域网内视频会议软件,此次采用Python实现此功能。 程序编写完并在编译器实现此功能后,采用pyinstaller组...
    99+
    2022-11-12
  • Python 数组和 Unix 的打包功能有什么相似之处?
    Python 数组和 Unix 的打包功能是两个看似不相关的概念,但是在实践中,它们有着一些相似之处。本文将会探讨这些相似之处,并且结合实例演示它们的应用。 一、数组和打包的概念 在 Python 中,数组是一个有序的元素集合,每个元素都...
    99+
    2023-11-02
    数组 unix 打包
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作