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
))