python入门(四)--函数简要概述

141 阅读3分钟

函数

调用函数

Python 内置函数:官方文档链接:

求绝对值:



  • >>>
    abs(
    -54.90
    )



  • 54.9




  • >>>
    abs(
    223
    )



  • 223




  • >>>
    abs(
    9999999
    )



  • 9999999



还可以通过变量名,引用函数:



  • >>>
    func = abs



  • >>>
    func(
    -1
    )



  • 1





定义函数

在Python中,定义一个函数要使用def语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用return语句返回。

如果没有return语句,函数执行完毕后也会返回结果,只是结果为None。

return None可以简写为return。

例如:



  • >>>
    def cacu(x):



  • ...
    sum =
    0




  • ...
    for
    x
    in
    range(x):



  • ...
    sum = sum + x



  • ...
    return
    sum



  • ...


>>> cacu(5)

10

定义空函数可以用pass语句:



  • >>>
    def nop():



  • ...
    pass




  • ...



返回多个值时:returnx,y

其实返回的是一个tuple对象,(x,y),括号可以省略

函数的参数
默认参数:

默认参数可以简化函数的调用。设置默认参数时,有几点要注意:

一是必选参数在前,默认参数在后,否则Python的解释器会报错(思考一下为什么默认参数不能放在必选参数前面);

二是如何设置默认参数。

当函数有多个参数时,把变化大的参数放前面,变化小的参数放后面。变化小的参数就可以作为默认参数。

如:水果店卖水果,需要输入水果类型和价格



  • >>>
    def sale(f,p):



  • ...
    print
    'fruit:%s'
    % f



  • ...
    print
    'price:%f'
    % p



  • ...



调用时,只需要传入两个值:f,p:

>>> sale('apple',34.33)

fruit:apple

price:34.330000

但是如果,我还需要知道有关水果其他信息,比如水果店的位置还有店铺名称,

可以把位置s和名称name设为默认值:



  • >>>
    def sale(f,p,s='NJ',name='SN'):



  • ...
    print
    'fruit:%s'
    % f



  • ...
    print
    'price:%f'
    % p



  • ...
    print
    'situation:%s'
    %s



  • ...
    print
    'name:%s'
    % name



  • ...



>>> sale('apple',34.22)

fruit:apple

price:34.220000

situation:NJ

name:SN

可见,默认参数降低了函数调用的难度,而一旦需要更复杂的调用时,又可以传递更多的参数来实现。无论是简单调用还是复杂调用,函数只需要定义一个。

定义默认参数要牢记一点:默认参数必须指向不变对象!

可变参数:

在参数前加上*



  • >>>
    def allgrades(*grade):



  • ...
    sum =
    0




  • ...
    for
    g
    in
    grade:



  • ...
    sum = sum + g



  • ...
    print
    sum



  • ...



>>> grade =(66,77,99,44,66)

>>> allgrades(1,2,3,4,5,6)

21

>>>allgrades(*grade)

352

关键字参数:

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。



  • >>>
    def person(name,age,**other):



  • ...
    print
    'name:'
    ,name,
    'age:'
    ,age,other



  • ...



  • >>>
    person (
    'Sandy'
    ,
    18
    , city=
    'NJ'
    , sex=
    'female'
    ,weight=
    50
    )



  • Name : Sandy age:
    18
    {
    'city'
    :
    'NJ'
    ,
    'weight'
    :
    50
    ,
    'sex'
    :
    'female'
    }



参数组合:

在Python中定义函数,可以用必选参数、默认参数、可变参数和关键字参数,这4种参数都可以一起使用,或者只用其中某些,但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数和关键字参数。

递归函数

定义阶乘的函数:f(n)=f(n-1)*n:



  • >>>
    def f(n):



  • ...
    if
    n==
    1
    :



  • ...
    return
    n



  • ...
    else
    :



  • ...
    return
    n*f(n
    -1
    )



  • ...



>>> f(3)

6

>>> f(4)

24

更多免费技术资料可关注:annalin1203