可变参数

允许在调用函数时传入任意多个参数,Python允许在形参前面添加一个星号(*),表示该参数可以接收多个参数值,多个参数值被当做元组传入。

def my_add(*args): sum1 = 0print(type(args))for i in args:sum1 += ireturn sum1
print(my_add(1, 2, 3, 4, 5, 6, 7))


在参数传入时可能不仅有可变参数,还有其它形参。
1.当可变参数在形参之后传入时数据传入方法:

def my_add(num, *args):  # 可变参数在后sum1 = 0print(type(args))print(f'num={num}')for i in args:sum1 += ireturn sum1print(my_add(9, 2, 3, 4, 5, 6, 7))


2.当可变参数在形参前传入时数据传入方法:

def my_add(*args, num):  # 可变参数在前sum1 = 0print(type(args))print(f'num={num}')for i in args:sum1 += ireturn sum1print(my_add(1, 2, 3, 4, 5, 6, 7, num=9))  # 调用时的区别


3.当可变参数后有多个形参前传入时数据传入方法:

def my_add(*args, num, num1):  # 可变参数在前,后面有多个形参时sum1 = 0print(type(args))print(f'num={num}')print(f'num1={num1}')for i in args:sum1 += ireturn sum1print(my_add(1, 2, 3, 4, 5, 6, 7, num=9, num1=10))  # 调用时的区别

关键字参数

调用函数时,我们可以使用“关键字参数”,格式为:kwarg=value
关键字参数是通过关键字来确认参数的,所以可以用按照函数定义时的顺序传递参数。
关键字参数传递格式为:**name,关键字参数会将传入的参数存入字典中。

# 关键字参数
def my_add(**kwargs):sum1 = 0print(type(kwargs))for i in kwargs.values():sum1 += ireturn sum1print(my_add(a=1, b=2, c=3, d=4))

问题:在解决输入任意个数参数的问题时,如果用户输入时,即不确定个数,也不确定形式应该怎么设置

def my_add(*args, **kwargs):sum1 = 0sum = 0for i in args:sum1 += ifor i in kwargs.values():sum += ireturn sum, sum1print(my_add(1, 2, a=9, b=10))
print(my_add(*[1, 2, 3]))

Python关键字参数和可变参数相关推荐

  1. python可变参数和关键字参数位置_python的位置参数、默认参数、关键字参数、可变参数区别...

    一.位置参数 调用函数时根据函数定义的参数位置来传递参数. #!/usr/bin/env python # coding=utf-8def print_hello(name, sex): sex_di ...

  2. Python的位置参数、默认参数、关键字参数、可变参数之间的区别

    1. 位置参数 调用函数时需根据定义的参数位置来传参 def print_hello(name, sex):print('hello %s %s, welcome to python world!' ...

  3. python 关键字参数为什么只能出现在最后_Python笔记2——默认参数,可变参数,关键字参数,参数组合...

    1.借助抽象,我们才能不关心底层的具体计算过程,而直接在更高的层次上思考问题;写计算机程序也是一样,函数就是最基本的一种代码抽象的方式 2.abs()求绝对值的函数 3.cmp()比较两个值大小的函数 ...

  4. python 位置参数、默认参数、可变参数位置关系_python的位置参数、默认参数、关键字参数、可变参数区别...

    一.位置参数 调用函数时根据函数定义的参数位置来传递参数 #!/usr/bin/env python#coding=utf-8 defprint_hello(name, sex): sex_dict= ...

  5. python可变参数和关键字参数位置_python笔记——函数的参数(位置参数、默认参数、可变参数、关键字参数、命名关键字参数、参数组合)...

    定义函数的时候,我们把参数的名字和位置确定下来,函数的接口定义就完成了.对于函数的调用者来说,只需要知道如何传递正确的参数,以及函数将返回什么样的值就够了,函数内部的复杂逻辑被封装起来,调用者无需了解 ...

  6. python函数参数之必选参数,默认参数,可变参数,关键字参数

    Python的函数定义非常简单,但灵活度却非常大.除了正常定义的必选参数外,还可以使用默认参数.可变参数和关键字参数, 1 默认参数 定义形式:def calc(para1,para2=None):其 ...

  7. 详解Python位置参数、默认参数、关键字参数、可变参数

    Python中函数参数比较复杂,需要认清区别.合理利用,否则很麻烦.首先,认清参数的分类: 分类标准1:形参parameter,函数定义时用:实参argument,函数调用时用: 分类标准2:位置参数 ...

  8. Python 3.X | 一文看懂不懵圈:位置参数(必选参数)、默认参数、可变参数、关键字参数、形参、实参...

    Win 10+Python 3.6.3 不管是什么参数,它们身处环境是:函数(function).参数让函数如虎添翼,灵活.强大. 1.概念释义: def func(x, y=2, *arg, *, ...

  9. python疑问5:位置参数,默认参数,可变参数,关键字参数,命名关键字参数区别...

    1.位置参数 位置参数要求调用时传入函数的参数必须和定义时的位置和个数一致,即一一对应,不可缺省 def func(a,b):sum = a + breturn sum print(func(2,3) ...

  10. Java可变参数 Python可变参数 Scala可变参数

    Java 可变参数的特点: (1).只能出现在参数列表的最后: (2)....位于变量类型和变量名之间,前后有无空格都可以: (3).调用可变参数的方法时,编译器为该可变参数隐含创建一个数组,在方法体 ...

最新文章

  1. SOA改变的企业软件生态
  2. 在WinForm中通过HTTP协议向服务器端上传文件(转)
  3. c++ 编译添加dll_matconvnet安装、编译、配置
  4. Java实现冒泡排序及其优化
  5. java 判断子类_java判断class是否是某个类的子类或父类
  6. php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性
  7. HTML 表单和输入
  8. Eclipse Git下载问题:Internal error; consult Eclipse error log.
  9. 游戏里的---Change
  10. 从turtlesim到贪吃蛇……
  11. 【数据库】浅析Innodb的聚集索引与非聚集索引
  12. 深度学习中如何选择一款合适的GPU卡的一些经验和建议分享
  13. 计算机软科排名澳门科技大学,2016年软科中国两岸四地大学排名正式发布
  14. 什么是数据湖?为什么需要数据湖?
  15. ffplay控制音量方法
  16. 批量修改txt内容的某个字符串-多快好省
  17. RTL8723BU wifi 及 热点移植和测试
  18. 人机交互-9-人机交互基础知识
  19. 纽约大学研究生 计算机科学 申请,纽约大学计算机科学理学硕士理学硕士研究生申请要求及申请材料要求清单...
  20. 六级考研单词之路-二十一

热门文章

  1. 七十年前往事的回忆:偷窥造酒作坊的裸体男人
  2. slam‘s degenerate problem
  3. vue2 脚手架 | vite脚手架简单使用
  4. Redis 速度快的原因
  5. php微信粉丝获取,PHP微信开发之同步粉丝
  6. Android手机获取QQ闪照的方法
  7. 网站改成黑白色(兼容大部分浏览器)
  8. 制作公众号数据分析表
  9. 2021-12-23 睡前故事--jQuery-添加元素之append、prepend、after、before的区别
  10. 依据周次获取周次的日期范围