zoukankan      html  css  js  c++  java
  • Day5

    传入的参数的个数是可变的。
    例子:定义一个函数,通过给出一组数,返回这组数中最大值与最小值的和。
        def msum(numbers):
            r = max(numbers) + min(numbers)
            return r
           
        >>>msum([1,2,3,4,5])
        6
        numbers需要为list或者tuple,相当于:
        a = [1,2,3,4,5]
        msum(a)
       
    如果使用可变参数,那么调用函数时的变化如下:
        未使用可变参数:msum([1,2,3,4,5])
        使用可变参数:     msum(1,2,3,4,5)
    将函数参数改为可变参数:
        def msum(*numbers):
            r = max(numbers) + min(numbers)
            return r
          
           运行结果:
            >>> def msum(*numbers):
            ...     r = max(numbers) + min(numbers)
            ...     return r
            ...
            >>> msum(1,2,3,4)
            5
            >>> msum(1,2,5,7,8,9,123,323123)
            323124
            在参数前加*号后,参数numbers接收到的是一个tuple,因此在代码完全不变的情况下,调用函数可以传入任意个参数。
           
    调用可变参数
        如果已经有了一个list或tuple,调用一个可变参数的方法:
       
            >>> a = [1,2,3,4,5,6]
            >>> msum(a[0],a[1],a[2],a[3],a[4],a[5])
            7
       太麻烦了。
       在list或tuple前加*号,把list或tuple的元素变为可变参数传进函数!
            >>> a = [1,2,3,4,5,6,7,8,10,12,123123123,122]
            >>> msum(*a)
            123123124
           
            *a 表示把a这个list的所有元素作为可变参数传递到msum函数中。
            这种写法非常常见,非常有用。
      
  • 相关阅读:
    Node.js学习笔记(五) --- 使用Node.js搭建Web服务器
    express常用中间件
    MongoDb 学习笔记(一) --- MongoDb 数据库介绍、安装、使用
    如何优化网站加载时间
    Node.js学习笔记(四) --- fs模块的使用
    dns-prefetch使用整理
    puppeteer 中国区的使用
    mysql 定时任务和存储过程
    疯狂使用 leancloud (投稿文章)
    elasticsearch
  • 原文地址:https://www.cnblogs.com/konggg/p/8989141.html
Copyright © 2011-2022 走看看