美文网首页
2018-10-11总结

2018-10-11总结

作者: _墨宇_ | 来源:发表于2018-10-11 20:16 被阅读0次

匿名函数

1.普通函数
def 函数名(参数列表):
函数体
2.匿名函数
函数名 = lambda 参数列表:返回值
sum1 = lambdm (args,*kwargs):None
说明:
函数名 ----变量名
lambda ---关键字
参数列表 ----(参数名1,参数名2...)(至少有一个函数)

返回值 -----相当于有一个return语句的函数体

匿名函数的调用和普通函数一样:函数名(实参列表)也支持位置参数,关键字参数,不定长函数

变量的作用域

1.变量的作用域

变量的作用域是指变量更够使用的范围

2.全局变量和局部变量

全局变量:声明在函数和类的外面的变量都是全局变量,作用域是从声明开始到整个py文件结束。

3.局部变量

声明在函数和类中的变量都是局部变量。声明在函数中的变量,作用域从声明开始到整个函数结束。

def fuc():
a = 123  #a就是局部变量

4.global 关键字

在函数中说明一个变量是全局变量
`注意:值在函数中使用

name = 'uzi'
def fuc():
global name#说明当前使用的变量为全局变量
  name ='letme'
  print(name) 
fuc()  # 'letme'

5.nonlocal 关键字

想要在局部变量中修改局部变量的值

def fuc():
  abc = 100
  nonlocal abc
  abc = 200
  print(abc)

fuc()   #200


4.函数作为变量

1.声明函数就是声明一个类型是function的变量,函数名实质就是一个变量名

def fuc():
  print()
print(type(fuc))  #<class 'function'>

2.函数作为列表元素

a = 10
list1 = [1,a]
def fuc():
  print('love')
  return 10
list2 = [1,fuc(),fuc]
print(list2)  #[1,10,fuc地址]

3.将函数作为参数

def fuc1(n):
    n()

def fuc2():
    print('chenguo is good man')

fuc1(fuc2) #chenguo is good man

列表.sort(key = None ,reverse = False) 使用sort的时候,可以通过key赋值一个函数变量,来规定列表中的元素按照什么标准来排序 这儿的函数要求有一个参数和返回值。

lst3 = [(10,20),(100,3),(1,90)]
def sum1(item):
    return  item[1]
list3.sort(key = sum1)
print(list3) #[(100, 3), (10, 20), (1, 90)]

4.将函数作为返回值

根据运算符号,返回对应的功能

def oper(opera):
    if opera =='+':
        def fuc1(*args,**kwargs):
            #*args = (tuple)
            #**kwaggs = {dict}
            sum1 = 0
            for x in args:
                sum1 += x
            for y in kwargs:
                sum1 += kwargs[y]
            return  sum1
    return  fuc1
re = oper('+')(34,56,35,a = 12 , b = 45)
print(re)#182

函数的调用

1.补充:python中的函数可以有多个返回值

求多个数的和以及平均值

def sum1(*n):
    sum2 = sum(n)
    avrg = sum2/len(n)
    return  (sum2, avrg)  #同时返回和 、平均值
a = sum1
print(a(12,3,4,4))  #(23, 5.75)

递归函数

递归函数:函数中调用函数本身,这样的函数就是递归函数(自己调自己)

循环能做的事情递归都可以做,但是实际上循环能解决的问题绝对不选递归

相关文章

网友评论

      本文标题:2018-10-11总结

      本文链接:https://www.haomeiwen.com/subject/gzzbaftx.html