python函数

踮着脚就能够到的不叫目标。

函数的定义:

def func(x , n = 2): //n = 2 是说默认的情况下求的是一个数的平方,注意冒号不能省略

    s =  1 //s 就是最终返回的结果

    while n > 0: // 循环的条件,注意冒号不能省略

          s = s * x//这是函数的主体部分

          n = n - 1//来控制循环次数

    return s//将计算的结果返回出来

注意在设置默认参数的时候,1、必选参数在前,默认参数在后。当默认参数设置在前边的话,python会报语法错误SyntaxError: non-default argument follows default argument..我觉得原因是说,你既然设置了默认的参数在前边,然后当你在调用这个函数的时候,想想逻辑上也过不去啊。2、如何设置函数的参数:当函数有多个参数的时候,将变化大的参数放在前面,变化小的参数放在后面,变化小的参数就可以作为默认参数。

疑问:对于有默认参数的函数来说,调用函数的时候,函数的参数是根据顺序一一对应的,而不是参数的类型?

是可以不按照参数的顺序来进行调用的,但是你需要把参数名写上。

函数的调用:

func(5)  结果是25 ,,默认n = 2 ,求的是平方

func(5,3) 就是5 * 5 * 5 = 125


                                                分割线------可变参数


可变参数:函数传进去的参数的个数是可变的

例:给定一组数字a,b,c,,,,,,,计算a*a + b*b + c*c +.....。定义这个函数,我们必须确定输入的参数。由于参数的个数不确定,我们首先想到的是将a,b,c...作为一个list或tuple传进来,这样函数可以如下定义:

def calc(numbers):

    sum = 0

    for n in numbers:

        sum = sum + n * n

    reutrn sum

但是在调用的时候,需要先组装出一个list或tuple

clac([1,2,3])---14

clac((1,3,5,7))---84

将函数的参数改为可变参数:

def calc(*numbers):

    sum = 0

    for n in numbers:

        sum = sum + n * n

    return sum

定义可变参数和定义一个list或者tuple参数相比,仅仅在参数前面加了一个*号。在函数内部,参数numbers接收到的是一个tuple,因此函数代码完全不变,但是,调用函数的时候,可以传入任意个参数,包括0个参数:

calc(1,2)---5

calc()-----0

对于已经存在的list活着tuple,要调用一个可变参数,Python允许你在list或者tuple前面加一个*号,把list或tuple的元素变成可变参数传进去:

nums = [1,2,3,5]

calc(*nums)

#       *nums 表示把nums这个list的所有元素作为可变参数传进去。这种写法很重要。



                                               关键字参数


def person(name,age,**kw)

    print('name:',name,'age:',age,'other:',kw)

extra = {'city':'beijing','job':'Engineer'}

person('mudy',30,**extra)



                                              命名关键字参数


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:a = ab...
    bjchenli阅读 633评论 0 0
  • python函数的参数是目前见过最复杂的参数了。 C语言里用的最多的可变参数函数就是scanf和printf了,j...
    米耳阅读 359评论 0 0
  • https://my.oschina.net/leejun2005/blog/503562 深入浅出 Python...
    点点渔火阅读 1,034评论 0 1
  • Python: 函数参数魔法 2016-12-01 函数参数 在 Python 中,定义函数和调用函数都很简单,但...
    ZhouLang阅读 538评论 0 0
  • Python 是一种相当高级的语言,通过 Python 解释器把符合语法的程序代码转换成 CPU 能够执行的机器码...
    Python程序媛阅读 1,942评论 0 3