Python基础 | 受用终身的一颗星与两颗星

简介: Python基础 | 受用终身的一颗星与两颗星


在平时的学习或者开发过程中,经常会遇到下面的函数定义形式,在形参定义列表中,可能会有一个星*,也可能会有两个星**,如下所示:

    def foo(*args, **kwargs):    pass

    你了解二者之间的区别吗?一个星和两个星的作用是什么?什么情况下会使用?如果你能一眼就得出答案,那么本文对于你来说就没什么价值,反之,本文还是非常值得一看的。


    首先来看一个简单的两个数求和的函数,如下所示:

      def sum(a,b):  
      return a+b

      上面代码实现了两个数的求和,如果要实现任意多个数的求和,那该怎么办呢?这个时候就轮到一个星派上用场了。


      def sum1(*args):  
      sum = 0   
      for i in args:   
      sum = sum + i  
      return sum
      sum1(1,2,3,4,5)
      # 15

      上面的代码非常的简单易懂,也非常易于理解。所谓一个星指的就是函数接收任意多个参数,可以理解为是一个任意大小的一维数组,这样参数信息就保存在这个数组中,函数体中可以遍历这个数组,进行相关运算。


      了解了一个星的作用之后,接下来就可以看看两个星的作用了。两个星与一个星相同的地方在于都是可以接收任意多个参数,不同之处在于,两个星接收的每个参数都有一个名字,是一种字典类型的结构。




      def foo(**kwargs):  
      for key, value in kwargs.items():       
      print('{} - {}'.format(key,value))

      foo(name='chen',age=12,gender='male')
      输出结果为:
      name - chen
      age - 12
      gender - male


      本文介绍了函数定义中常见的一个星与两个星的用法及区别,其用途非常广泛,主要是用来解决函数接收任意多个参数的场景。


      参考文献:

      [1] keyword arguments in python. https://treyhunner.com/2018/04/keyword-arguments-in-python/



      目录
      相关文章
      |
      数据采集 机器学习/深度学习 Web App开发
      基于微博数据用 Python 打造一颗“心”
      一年一度的虐狗节终于过去了,朋友圈各种晒,晒自拍,晒娃,晒美食,秀恩爱的。程序员在晒什么,程序员在加班。但是礼物还是少不了的,送什么好?作为程序员,我准备了一份特别的礼物,用以往发的微博数据打造一颗“爱心”,我想她一定会感动得哭了吧。哈哈
      89 0
      |
      7天前
      |
      存储 程序员 开发者
      Python编程基础:从入门到实践
      【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!
      |
      8天前
      |
      机器学习/深度学习 数据采集 数据挖掘
      探索Python编程的奥秘
      【10月更文挑战第7天】本文将带你走进Python的世界,探索其背后的逻辑与魅力。我们将从基础语法开始,逐步深入到函数、面向对象编程等高级特性,最后通过实际项目案例,让你体验Python的强大与便捷。无论你是编程新手,还是有一定基础的开发者,都能在这篇文章中找到你需要的信息和启发。
      |
      9天前
      |
      IDE 开发工具 Python
      Python 编程入门:打造你的第一个程序
      【10月更文挑战第6天】编程,这个听起来高大上又充满神秘感的领域,其实就像学习骑自行车一样。一开始你可能会觉得难以掌握平衡,但一旦你学会了,就能自由地穿梭在广阔的道路上。本文将带你走进 Python 的世界,用最简单的方式让你体验编写代码的乐趣。不需要复杂的理论,我们将通过一个简单的例子——制作一个猜数字游戏,来实践学习。准备好了吗?让我们开始吧!
      |
      6天前
      |
      数据采集 开发框架 数据处理
      探索Python的灵活性:简化日常编程任务
      【10月更文挑战第7天】 【10月更文挑战第9天】 在本文中,我们将深入探讨Python编程语言的强大功能和灵活性。通过具体的代码示例,我们会展示如何利用Python简化日常编程任务,提高效率。无论是数据处理、自动化脚本还是Web开发,Python都能提供简洁而强大的解决方案。我们还将讨论一些最佳实践,帮助你编写更清晰、更高效的代码。
      10 1
      |
      11天前
      |
      存储 人工智能 Java
      Python编程入门:从基础到实战
      【10月更文挑战第4天】本文旨在为初学者提供一个全面而深入的Python编程学习路径。我们将从Python的基本语法和概念开始,然后逐步深入到更复杂的主题,如数据结构、面向对象编程和异常处理等。最后,我们将通过一些实际的项目案例,帮助读者将理论知识应用到实践中去。无论你是编程新手,还是有一定经验的开发者,都可以在这篇文章中找到适合自己的学习内容。让我们一起开启Python编程的学习之旅吧!
      |
      10天前
      |
      存储 人工智能 数据挖掘
      探索Python编程:从基础到进阶
      【10月更文挑战第5天】在数字时代的浪潮中,掌握编程技能已成为一项宝贵的能力。本文旨在为初学者提供一个深入浅出的Python编程之旅,从基本概念到实际应用,逐步揭示编程之美。无论你是编程新手还是希望深化理解,跟随这篇文章的脚步,你将学会如何用Python语言构建你的第一个程序,并了解代码背后的逻辑。让我们开始吧,解锁编程的秘密,开启你的技术成长之路!
      |
      11天前
      |
      数据可视化 Python
      Python编程之数据可视化入门
      【10月更文挑战第4天】在数字时代的洪流中,数据如同星辰般璀璨,而将它们绘制成图表,便是我们探索宇宙的方式。本文将带你启航,用Python这艘航船,驶向数据可视化的奥秘。我们将从安装必要的工具包开始,逐步深入到数据的呈现,最后通过代码示例点亮知识的灯塔,指引你在数据海洋中航行。让我们握紧舵盘,乘风破浪,揭开数据背后的故事吧!
      |
      10天前
      |
      数据采集 程序员 开发者
      Python编程入门:从基础到实战
      【10月更文挑战第5天】本文旨在为初学者提供一条清晰的Python学习路径,涵盖基础知识、关键概念、实战项目以及常见问题解答。我们将通过简单易懂的语言和实际代码示例,帮助读者快速掌握Python编程技能。无论你是零基础的新手还是有一定经验的开发者,都能在这篇文章中找到有价值的信息。让我们一起开启Python编程之旅吧!