day11总结

python中声明函数是什么意思?

python中声明函数就是声明类型是function的变量, 函数名就是变量名。

变量作为函数的参数

def func2(x):
    print('函数里面:', x)


a = 10
func2(a)
func2(func1)

变量作为函数的返回值

def func3(x, y):
    num = x + y
    return num


print(func3(1, 2))


def func4():
    def func5():
        print('函数5')

    return func5


print(func4())
func4()()
装饰器的组成

装饰器 = 实参高阶函数 + 返回值高阶函数 + 糖语法
1.实参高阶函数
有一个参数是函数的函数就是实参高阶函数

问题1: 按个位数的大小对num中的元素从小到大排序

# [90, 90, 1, 23, 74, 78]
def func1(item):
    return item % 10


num = [1, 78, 90, 23, 74, 90]
num.sort(key=func1)
num.sort(key=lambda item: item % 10)
print(num)

问题2: 按各位数之和从大到小排序

# 1, 15, 9, 5, 11, 9   -> [78, 74, 90, 90, 23, 1]
num = [1, 78, 90, 23, 74, 90]


def func2(item):
    sum = 0
    for x in str(item):
        sum += int(x)
    return sum


num.sort(reverse=True, key=func2)
print(num)

1.返回值高阶函数
函数的返回是一个函数,这样的函数就是返回值高阶函数
情况一: 真正的返回值高阶函数

def func1():
    def func2():
        print('函数2')
    return func2

情况二: 假的返回值高阶函数

def func3():
    print('函数3')

def func4():
    return func3

练习: 声明一个函数operation,要求可以接收一个字符参数, 最后根据字符值的不同返回不同功能的函数

+ -> 求多个数和功能的函数 - -> 求多个数的差的功能的功能, * -> 求多个数的乘积的功能

operation('+')(1, 2, 4, 5) -> 12

operation('-')(1, 2, 4, 5) -> -10

operation('*')(1, 2, 4, 5) -> 40

def operation(char):
    # char = '+'
    if char == '+':
        def sum(*args):
            # args = (1, 2, 4, 5)
            temp = 0
            for x in args:
                temp += x
            return temp
        return sum

    elif char == '-':
        def diff(*args):
            temp = args[0]
            for x in args[1:]:
                temp -= x
            return temp
        return diff


print(operation('+')(1, 2, 4, 5))
print(operation('-')(1, 2, 4, 5))
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 生成式 生成式就是生成器的简写 1)语法1 生成器 = (表达式 for 变量 in 序列) a.说明:表达式 -...
    oct___越来越2阅读 191评论 0 1
  • """ = = = HJR = = = """ 1.生成式 生成式就是生成器的简写 1)语法一 生成器 = ...
    举颗凤梨阅读 261评论 0 1
  • 0.什么是函数、什么是需要使用函数 对实现某一特定功能的代码段的封装 1.函数的声明 def 函数名(参数列表):...
    Sun_092b阅读 361评论 0 0
  • 1. 运算符 1.1 三目运算符 Java支持三元运算符 ?: condition?expression1:exp...
    Jasonlulu阅读 602评论 0 0
  • 长乐未央 by 浅浅兮 ...
    琉璃树I浅浅兮阅读 509评论 2 2

友情链接更多精彩内容