python--函数

函数

是什么?

函数是pthon中为了实现某种特定的功能的一段代码

为什么?

在实际的工作环境中往往需要多个人配合完成一个项目,为了方便后面的修改和减少代码的总量,可以将一些重复的片段定义为一个函数

怎么用?

def 函数名():
	函数体
	return ()
	

用def来定义一个函数,函数名后面的括号可以添加参数,也可以不用加。
函数体是函数的主要内容
return是函数的返回值,可以没有
当要调用函数,可以直接使用函数名
例:判断是不是闰年

years=int(input("请输入一个年份:"))
def run(years):
    if years%4==0 and years%100!=0:
        print("{}是闰年是对的".format(years))
    elif years%400==0:
        print("{}是闰年是对的".format(years))
    else:
        print("{}是闰年是错的".format(years))


run(years)

这段代码中run就是函数名,run(years)中的years就是参数,这个函数不需要返回值,通过run(years)可以调用

分类

按照不同的标准可以划分出不同的结果。
1.根据是否由参数,可以分为有参函数,无参函数。
2.根据是否有返回值,可以分为有返回值的函数,无返回值的函数。

局部变量

局部变量就是在函数中使用的变量,仅在函数中有效。
全局变量就是在整个代码中都使用的变量。
全局变量在函数中可以引用,但是要是想修改全局变量的话,必须在函数中申明该变量
例:使用函数完成一个0~n之间的奇数的积。

n=int(input("请输入n可以得到0-n之间奇数的积:"))
j=1
def ji(n,):
    index=1
    while index<=n:
        if index%2==1:
            global j
            j*=index
        index+=1
    print("0-{}的奇数积是:{}".format(n,j))
ji(n)

python--函数_第1张图片
j是全局变量,在函数ji中要使用必须要通过global。

函数参数

def add(x, y=10, *args, **kwargs):

普通参数:就是函数名后面的()内通过,间隔的普通的函数。x就是普通参数
默认值参数:这类参数通常在普通的参数后面,根据使用者的意愿来起作用,若是使用者输入了这个参数就在下面的运算中使用输入的值,若是使用者未使用则将默认的值带入。y是默认值参数
可变参数:在python中,当一个函数参数特别多的时候可以使用可变参数来接受这些参数,这个参数会把多余的参数存在一个列表中。*args是可变参数
命名参数: 当我们在定义函数的时候,有时候需要保留扩展函数功能时使用可变和命名参数来完成。 **kwargs是命名参数

函数递归

函数递归就是定义一个函数,不断的调用这个函数,函数在栈中运行,由于栈的内存原因,只可以递归1000次,所以递归必须要有终止条件
例:使用递归完成1~100之间的积
递归写法

def ji(n):
    if n==1:
        return 1
    return n*ji(n-1)
print(ji(100))

非递归写法

index=1
ji=1
while index<=100:
    ji*=index
    index+=1
print("0-100的奇数积是:",ji)

python--函数_第2张图片

其中的if就是终止条件

匿名函数

在某些特定的情况下可以使用lambda表达式来简化函数的写法,但是增加了代码的维护成本,降低了可读性。
lambda表达式

lambda[x,y,x+y]      <=>          def add(x, y):
										return x + y

你可能感兴趣的:(python)