全栈成长-python函数

python函数以及传参

定义一个函数

def funadd(a,b):
    return a+b

函数的传参

#以此函数为例
def funtext(a,b=1,*args,**kwargs):
    print(a,b)
    print(args,kwargs)
funtext(1,2,3,4,5,6,name="wsm")

#打印结果
 1 2
(3, 4, 5, 6) {
    
    'name': 'wsm'}
#在调用函数时 a没有定义默认值  b的默认值是1    
参数类型 值(参考上述代码块)
必传参数 a
可选参数 b(可传可不传,不穿默认值为1)
不确定参数 *args 将无参数的值合并成元组(3, 4, 5, 6)
**kwargs 将有参数和默认值的赋值语句合并成字典{‘name’: ‘wsm’}

定义函数参数类型

#参数名 + : + 类型
def funtext2(a:str,b:int=1):
    print(global a)
    print(a,b)

局部变量和全局变量

name="wsm" #全局变量

#参数名 + : + 类型
def funtext(a=1,b=2):
    c="123" #局部变量 仅在函数体内有效
    print(a,b,c)# 1,2,"123"
print(c) #为定义   

#修改全局变量  global
def funtext():
    global name
    name="123" #局部变量 仅在函数体内有效
    print(name)# "123"
print(name) #"123"

递归函数

def text():
    global num
    num += 1
    if num != 5:
        print('不满足,继续调用自己', num)
        return text()
    else:
        print("满足了", num)
#ps:递归函数一定要有结束条件      避免乱用造成内存溢出

匿名函数 lambda

  • 定义一个轻量化函数
  • 即用即删除,很适合需要完成一项功能,但是此功能只在一处使用
  • 默认retun一个值
#例子
func =lambda:print(1)# 1
func2 =lamdba:x,y:x>y
print(func2(1,2))#False
func3 =lamdba:x,y=1:x+y
print(func2(1,2))#3

猜你喜欢

转载自blog.csdn.net/qq_51075057/article/details/130564419
今日推荐