day14-函数

不可变数据类型:数字,字符串,元组

可变数据类型:列表,字典

集合有去重特点,分为可变集合,不可变集合。

 

函数:def 关键字开头

在python函数中,

①默认return会返回none

②如果return多个对象,那python会将多个对象封装成一个元组返回

③函数在执行过程中遇到return语句,就会停止执行并返回结果

 

函数的作用域:LEGB(只有模块,类,函数才能引入作用域)

  1. L local 嵌套作用域
  2. E enclosing 局部作用域
  3. G global 全局作用域
  4. B builtin 

关键字 global,nonlocal作用:

# count = 10
# def outer ():
#     global count#global加入声明可避免报错
#     print(count)
#     count = 5
#
# outer()

x=int(2.9)#built.in
g_count=0#global
def outer ():
    count = 10#enclosing
    def inner():
        nonlocal count#关键字nonlocal在函数嵌套中声明全局变量
        count = 2#local
        print(count)
    inner()


outer()

递归函数:

递归函数两个特点:①自己调用自己 ②提供结束条件

阶乘函数

def fact(n):
    if n == 1:
        return 1
    return n*fact(n-1)

print(fact(3))

注意点:一般递归可以写的,循环都可以解决,但递归的效率不高

 

函数参数:

默认参数
def print_info(name,age,sex='female'):
     print('Name: %s'%name)
     print('Age: %d' %age)
     print('Sex: %s' %sex)
print_info('zang',44)
print_info('xu',2)

关于不定常参数位置:args放左边,kwargs放右边,例如ef print_info(*args,**kwargs),如果有默认参数,放左边
#low加法器
# def add(x,y):
#     print(x+y)
# add(2,3)

#高大上加法器
# def add(*args):#:*把不定常参数组成元组
#
#     sum=0
#     for i in args:
#         sum+=i
#     print(sum)
# add(1,2,3,4,5)#组成了元组

# def print_info(**kwargs):#:**把不定常参数组成键值对
#     print(kwargs)
#     for i in kwargs:
#         print('%s:%s'%(i,kwargs[i]))
# print_info(job='IT',hobby='girl',height=199)
传入字典参数,加两个星号
# def f(**kwargs):
#     print(kwargs)
#
# f(**{'name':'alex'})#传入字典参数,加两个星号
高阶函数:
1.函数名可以进行赋值
2.函数名可以作为函数参数,还可以作为函数的返回值(满足任一都称为高阶函数)
def f(n):
    return n*n
def foo(a,b,func):
    ret =  func(a) + func(b)
    return ret

print(foo(1,2,f))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值