冬西

导航

6,函数

函数可以减少代码的重复率

方便日后修改,维护,升级

定义:

def 函数名():

    函数体

调用:

函数名()

函数必须先定义,再调用

 

函数的注释,或者说是说明放在函数名的下方,用“”“  ”“”包裹 ,当调用时,可以按 ‘ctrl + Q’来查看注释

举例:

def func():

 “”” 这是函数的注释“””

    print('in the func')

func()  #光标在这里按‘ctrl+Q’查看

>>> "in the func"

函数里面也可以带参数:

x=3,y=5

def sum1(a, b):

    print(a+b)

sum1(x, y)

其中 a, b叫做形参, x,  y 叫做实参

默认参数:

默认参数就是给形参先固定一个值,如果不调用,默认使用那个值,调用使用传过来的那个值

举例:

def sum1(x, n =2):

    sum = x**n

    return sum

return sum 就是将函数的结果返回,需要一个变量接收。

这是一个计算数字n次方的函数,不给n传参数就是计算x的平方,给n传参数,计算的是x的n次方

正常情况下,我们都是先传 x的值,再给n传值,这种方式叫做按位置传参数,x,n这时叫做位置参数,但是我想先给n传值,这时就需要这么做:

sum1(n = 3,x = 5),这样x,n就叫做关键参数,如果一个函数调用时既有位置参数,又有关键参数,关键参数一定要放在位置参数的后面

 

当你不确定你要传多少参数的时候,你可以定义一个非固定参数:

def func(*args):

    print(*args)

func(1,2,3,4,5)

func(*[1,2,3,4,5])

这样你想传多少传多少,结果会以元组的形似打印出来

def func (**kwargs)

    print(kwargs)

func('key' = 'value','key2' = 'value2')

func(**{'key' : 'value','key2' : 'value2'})

将键值对或者字典相传多少传多少,最后以字典的方式输出

局部变量

name = 'ma'

def name1():

    name = 'li'

name1()

print(name)

你会发现 name的值依旧是'ma',如果你一定要在函数内修改全局变量请在函数内加global

嵌套函数:

def yi():

    def er():

        def  san():

在函数中在定义一个函数就叫做嵌套函数,嵌套函数只能在他的上一级函数中调用,就像局部变量一样

递归函数:

函数的内部是可以调用函数的,如果函数内部调用的是函数的本身,这个函数就叫做递归函数

特性: 必须要有一个明确的结束条件,每一次递归,问题要有减少,递归函数效率不高,容易溢出

匿名函数主要是配合其他函数使用calc = lambda n:n**n   print(calc(10))

 

posted on 2018-06-08 21:18  冬西  阅读(104)  评论(0编辑  收藏  举报