不定长参数

如果想要一个函数能不固定接收任意多个参数,可以使用不定长参数。

1.不定长参数两种基本形式:

python自定义函数中有两种不定长参数,第一种是*XXX,在传入额外的参数时可以不用指明参数名,直接传入参数值即可。第二种是**XXX,这种类型返回的是字典,传入时需要指定参数名。

加了一个星号 * 不定长参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。加了两个星号 ** 的参数会以字典的形式导入,存放已命名的变量参数。
例如
代码

#coding=utf-8#第一个是元组形式,第二个是字典形式
def sun(*a, **b):print(a)print(b)sun(1, 55258, x=25412, y=5123512)
(1,55258)
{'x':25412,'y':5123512}

2.实例

2.1实例一

不定长参数简单示例,第一个是普通参数,第二个是不定长参数,我们可依次打印输出,不定长参数为元组的形式,如b代表的是(55258,25412,5123512),而a作为普通参数,只能代表第一个1。

代码

#coding=utf-8#不定长参数简单示例,第一个是普通参数,第二个是不定长参数
def sun(a, *b):print(a)print(b)sun(1,55258,25412,5123512)

运行结果

2.2实例二

在a, *b, **c同时出现的时候,如下:

代码

#coding=utf-8#使用不定长参数传固定值,注意,b、c可省略,a不可省略
def fuzhi(a, *b, **c):print(a)print(b)print(c)
fuzhi(853521, 65134, 635263, 45563, 365, x=99, y=999)

运行结果

个实例中,不定长参数b、c可省略,而普通参数a不可省略,假如我们省略a

代码

#coding=utf-8#使用不定长参数传固定值,注意,b、c可省略,a不可省略
def fuzhi(a, *b, **c):print(a)print(b)print(c)
fuzhi()

运行结果

则会出现以上报错情况

2.3实例三

当我们用不定长参数来累加时:

代码

#coding=utf-8#用不定长参数实行累加
print(1, 2, 3, 4, 5)def sum(*nums):"""求多个数之和:param list_one: 接收数字的不定长参数,会把参数组装成一个(tuple)元祖,赋值给不定长参数:return: 返回所有数字之和"""result = 0for num in nums:if isinstance( num, (int,float)):result = result + numreturn resultsum()print(sum(1, 2, 3))

运行结果

2.4实例四

当我们将普通参数写在不定长参数写在后面时

代码

#coding=utf-8def JayChou(a, *b, c):print(a)print(b)print(c)
JayChou(1, 555, 5768, 55451)

运行结果

会出现如下报错,因此,位置不能随意更改

 2.5实例五

如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量

#coding=utf-8#如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。
def void_tuple(a, *tuplela):print(a)for b in tuplela:print(b)returnprint(1)
print(2, 3, 4, 5)

运行结果

python不定长参数详解相关推荐

  1. Python函数的参数详解

    Python函数的参数详解 函数是一个通用的程序结构组件.你也许已经在其他的编程语言中见到过,有时也被称为子程序或过程.简而言之,函数主要扮演了两个角色: 1)最大化代码重用和最小化代码冗余--函数允 ...

  2. Python 命令行参数详解

    Python 命令行参数详解 0. 命令行参数 1. sys.argv 2. getopt 2.1 getopt.getopt 方法 2.2 Exception getopt.GetoptError ...

  3. Python 不定长参数 *argc/**kargcs - Python零基础入门教程

    目录 一.前言 二.Python 不定长参数 argc/*kargcs 简介 1.函数不定长参数 *args 使用 2.函数不定长参数 **kwargs 使用 3.函数不定长参数*args 和**kw ...

  4. python:flatten()参数详解

    python:flatten()参数详解 这篇博客主要写flatten()作用,及其参数的含义 flatten()是对多维数据的降维函数. flatten(),默认缺省参数为0,也就是说flatten ...

  5. Python OpenCV相机参数详解:实现准确的相机标定和图像处理

    Python OpenCV相机参数详解:实现准确的相机标定和图像处理 在计算机视觉领域,相机参数是非常重要的元素.通过相机参数的标定,可以将图像中的像素坐标转化为真实世界中的坐标,从而实现准确的图像处 ...

  6. python不定长参数怎么相加_python函数不定长参数使用方法解析

    这篇文章主要介绍了python函数不定长参数使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 pathon中的函数可以使用不定长参数,可以 ...

  7. python中可选参数和可变参数_Python函数中的可变长参数详解

    一.Python函数中的参数 1.使用python的函数时,有参数类别,比如位置参数.关键字参数.可变长参数 2.位置参数.关键字参数很好理解,关键是可变长参数经常能见到,但是一直没有搞懂是什么意思 ...

  8. 【Python】Python3.7.3 - Python命令行参数详解

    文章目录 Python命令行参数概览 -c cmd参数示例 -m mod参数示例 file参数示例 - 参数示例 命令行选项详解 -b 选项 -B选项 -d选项 -E选项 -h / -? / --he ...

  9. Java数组可变长参数详解

    在java5中提供了可变长参数,也就是在方法中一个可变长参数可以代表同一类型的多个参数(数组):变长参数使用String...str标识: 1.向可变长参数方法传递多个参数 package exten ...

最新文章

  1. 如果你也时常想要上进,我们可以相互鼓励,相互促进
  2. linux 4.4内核是什么,Linux 内核 4.4 LTS 将于2016年1月10日发布
  3. 在HTML网页中嵌入脚本的方式
  4. 2008年12月答疑贴
  5. 乐迪智能陪伴机器人_会做饭能搬运还可陪伴 越来越智能的机器人让幸福感加倍...
  6. 省市区三级数据-MySQL
  7. c语言数组及其下标引用,C语言之数组下标引用与间接引用
  8. 【贪玩巴斯】传感器与检测技术 (一)「金属传感器三大重要传感器——电感、电容与振弦式」2021-09-28
  9. OFDM 调制系统框图 OFDM
  10. 梦幻西游战斗中服务器维护,梦幻西游10月22日维护公告 连续战斗自动问题修复...
  11. C#自定义控件添加到工具箱:
  12. SqlServer的填充因子
  13. 京东评价系统海量数据存储设计
  14. dynamo for Civil 3d-在横断面上生成对应桩号的平面坐标
  15. P2P游戏更新解决方案,P2P游戏更新引擎,P2P大文件分发。
  16. pytorch训练网络冻结某些层
  17. Spring源码解析十五
  18. 我的世界无限刷铁服务器,我的世界?怎么无限刷铁[多图]
  19. word,excel,ppt突然默认变成了其他应用程序的打开方式,如何调整回来?
  20. HDFS配置lzo压缩

热门文章

  1. 2020 JVM生态报告
  2. 苹果降低应用商店收入一半分成、Twitter视频分享功能 Fleet、百度36亿美元收购 YY|Decode the Week...
  3. ICML 2018 | 腾讯AI Lab详解16篇入选论文
  4. DNS 与BIND(第五版)
  5. 聊聊HTTPS和SSL/TLS协议
  6. AVC sequence header AAC sequence header
  7. devstack安装OpenStack Pike版本 (OVS+VLAN)
  8. zookeeper安装包下载地址
  9. redis-cli 命令详解
  10. 利剑无意之JAVA面试题(三)