zoukankan      html  css  js  c++  java
  • 函数的可变参数问题

    def f(*x):
        print(x,type(x))
    
    f(1)
    f('a','b')
    f(1,2,3,[23,31])

    如上程序,定义了一个函数,里面的参数加*代表可变参数,也就是可以输入多个参数,但是,输入进去后参数的类型就发生了变化。如下为程序运行结果:

    (1,) <class 'tuple'>
    ('a', 'b') <class 'tuple'>
    (1, 2, 3, [23, 31]) <class 'tuple'>

    运行结果显示,参数变为了元组的形式,这一点以后一定要多注意!!!

    可以利用这个特点做些事情:

    (1)两个数相乘:

    #两个数相乘
    def f2(*x):
        print(x[0]*x[1])
    
    f2(10,20)

    (2)将输入参数做累乘

    #将输入参数做累乘
    def f3(*x):
        s = 1
        for i in range(len(x)):
            s = s * x[i]
        print(s)
    f3(10,20,30)

    (3)求输入参数的平均值

    def f6(*m):
        s = 0
        for i in range(len(m)):   
            s = s + m[i]
        s = s/len(m)
        print(s)
            #sum(m)/len(m) #或者直接用这句话代替上边的几句
    f6(1,1,1,1)
  • 相关阅读:
    十一周总结
    第十周课程总结
    第九周课程总结&实验报告
    第八周课程总结&实验报告
    第七周&实验报告五
    第六周&Java实验报告四
    课程总结
    第十四周课程总结
    第十三周总结
    十二周课程总结
  • 原文地址:https://www.cnblogs.com/carlber/p/9898269.html
Copyright © 2011-2022 走看看