Python学习8 函数 匿名函数 内置函数

Posted DQ_CODING

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习8 函数 匿名函数 内置函数相关的知识,希望对你有一定的参考价值。

转换相关的方法-eval

转换相关的方法-json




函数基本语法大纲

函数概念

示例:

题目:

函数的参数


def f(x,y=1,*z,**abc):
    print(x,y,z,abc,sep="\\n")

f(1,4,5,3,a=1,b=2,c=3)
#1
# 4
# (5, 3)
# {'a': 1, 'b': 2, 'c': 3}

易错题:
1)

2)
a=1:默认参数,位置参数
*args:可变位置参数
**args:可变关键字参数

关键字参数(**args)在位置参数(*args,a=1,a)的后面
C是对的,C中两个参数都是位置参数,前后都可以

def f(y=1,*z):
    pass
def f(*z,y=1):
    pass

函数的返回值

如果一个函数没有返回值,它的返回就是 None。
没有写return,意味着没有返回值

没有返回类型,并且可以返回多个多个值:
示例为返回a/b的商和余数

函数调用函数

递归函数

练习1-求 [n, m) 之间所有整数之和

#1
#定义函数求 [n, m) 之间所有整数之和。
a= int(input("请输入第一个数"))
b=int(input("请输入第一个数"))
def add(n, m):
    count = 0
    for i in range(n,m - 1):
        count += i
    return count
print(add(a,b))

练习2-求 n 的阶乘

#2
#定义函数求 n 的阶乘。

n=int(input("请输入一个数"))
def factor(n):
    count=1
    for i in range(1,n+1,1):
        count*=i
    return  count
print(factor(n))

练习3-求阶乘的和

#3
#计算阶乘的和。如 m = 6  1!+2!+3!+4!+5!+6!。
n=int(input("请输入一个数"))
def factor(n):
    count=1
    for i in range(1,n+1,1):
        count*=i
    return  count

def sum1(n):
    sum1 = 0
    for i in range(1,n+1,1):
        sum1 += factor(i)
    return sum1

print(sum1(n))

局部变量和全局变量


代码示例:

查看局部和全局变量:

在python中只有函数可以分割作用域:
只有函数里面定义的才是局部变量,其他都是全局变量

函数注释

函数注意事项

匿名函数





示例:

list1 = [{"a": 10, "b": 20}, {"a": 20, "b": 20}, {"a": 50, "b": 20}, {"a": 6, "b": 20}, {"a": 9, "b": 20}]

# 那个列表中的a最大
max_value = max(list1, key=lambda x: x["a"])
print(max_value)

内置函数

内置函数 和 内置类 用到了 匿名函数

sorted(Iterable, key= None, reverse = False)
Iterable:排序规则(排序函数),在sorted内部会将可迭代对象中的每个元素传递给这个函数的参数.根据函数运算的结果进行排序
reverse:是否是倒序, True:倒序 False:正序 key:就可以使用匿名函数

示例:
现在有一个字典{‘小红’:20,‘小明’:18,‘小鱼’:19,‘小雪’:22,‘小东’:17},现在按照年龄排序

dict1 = {'小红':20,'小明':18,'小鱼':19,'小雪':22,'小东':17}
order_dict = sorted(dict1.items(),key=lambda s:s[1])
print(dict(order_dict)) 
# order_dict 是一个列表[('小东', 17), ('小明', 18), ('小鱼', 19), ('小红', 20), ('小雪', 22)],所以需要转成字典

上面的案例中 key 就使用了匿名函数进行排序条件的制定,即 lambda 的返回值是就是排序条件,默认是升序
示例2;

# 按照数量排序
goods = [('防脱发洗发水', 60, 3), ('格子衬衫', 156, 1), ('牛仔裤', 99, 7), ('运动鞋', 299, 2)]
goods = sorted(goods, key=lambda g: g[2], reverse=True)  # 设置成降序
print(goods)



语法: filter(function. Iterable)
function:用来筛选的函数,在filter中会自动的把iterable中的元素传递给function.然后根据function返回的Ture或者False来判断你是否保留此项数据
iterable:可迭代对象


补充:

isinstance(object, classinfo) 判断实例是否是这个类型
object是变量
classinfo 是类型(tuple,dict,int,float)




from functools import reduce

list1 = [1, 2, 3, 4, 5, 6, 7]
value = reduce(lambda x, y: x + y, list1)
print(value)  # 28 = 1+2+3+4+5+6+7





示例:
max()和min():

dict1 = {'小红':20,'小明':18,'小鱼':19,'小雪':22,'小东':17}
result = max(dict1.items(),key=lambda s:s[1])
print(result)

result = min(dict1.items(),key=lambda s:s[1])
print(result)

以上是关于Python学习8 函数 匿名函数 内置函数的主要内容,如果未能解决你的问题,请参考以下文章

python学习日记:day16-------内置函数与匿名函数

day18 python学习 内置函数,匿名函数,装饰器的

Python学习笔记-函数进阶之三元表达式匿名函数内置函数

python基础---内置函数 和 匿名函数 知识点自查填空题

python学习笔记4-内置函数匿名函数json处理

python学习-day16:函数作用域匿名函数函数式编程mapfilterreduce函数内置函数r