Python初级案例教学,函数的定义与调用,高阶函数,闭包以及装饰器【第四课】

简介: Python 编写一个函数 cacluate 编写一个函数 cacluate ,可以接收任意多个数,返回的是一个元组元组的第一个值为所有参数的平均值第二个值是大于平均值的所有数.使用高阶函数方式设计Calc函数,实现加、减、乘、除、乘方等计算功能使用闭包编写一个学生成绩平均统计。要求每次调用函数传入一个学生成绩,得到已经传入成绩的平均分。

Python 编写一个函数 cacluate

编写一个函数 cacluate ,可以接收任意多个数,返回的是一个元组元组的第一个值为所有参数的平均值第二个值是大于平均值的所有数.
def cacluate(*args):
    list1 = []   
    sum = 0
    for i in args:
        sum += i
    avg = sum / len(args)
    for i in args:
        if i > avg:
            list1.append(i)
    return avg, list1    


if __name__ == '__main__':
    n = cacluate(1, 2, 3, 4, 5, 6, 7, 8, 9)
    print(n)

def cacluate(*args): 中args为元组

list1 = [] 用来存储大于平均值的所有数

avg = sum / len(args) 求平均值

list1.append(i) 将数添加进列表内

return 返回多个值时,会自动转为一个元组。

Python编写一个函数,接收字符串参数返回一个元组

编写一个函数,接收字符串参数返回一个元组, ehlla WROLD 元组的第一个值为大写字母的个数,第力个值为小与字母个数。
def num(str1):
    big = 0
    small = 0
    for i in str1:
        if i.isupper():
            big += 1
        elif i.islower():
            small += 1

    return big, small


if __name__ == '__main__':
    s = 'ehlla WROLD'
    n = num(s)
    print(n)

if i.isupper():

        big += 1

大写加一

elif i.islower():

        small += 1

小写加一

使用高阶函数方式设计Calc函数,实现加、减、乘、除、乘方等计算功能

def add(x, y):
    return x+y


def des(x, y):
    return x-y


def cal(x, y):
    return x*y


def dec(x, y):
    return x/y


def pow(x, y):
    return x**y


def Calc(f, x, y):
    return f(x, y)


if __name__ == '__main__':
    a = int(input('输入数字:'))
    while True:
        c = input('输入运算符:')
        b = int(input('输入数字:'))
        if c == '+':
            a = Calc(add, a, b)
            print('加法:', a)
        elif c == '-':
            a = Calc(des, a, b)
            print('减法:', a)
        elif c == '*':
            a = Calc(cal, a, b)
            print('乘法:', a)
        elif c == '/':
            a = Calc(dec, a, b)
            print('除法:', a)
        elif c == '**':
            a = Calc(pow, a, b)
            print('乘方:', a)
        else:
            break

实现了连续计算。

使用闭包编写一个学生成绩平均统计。要求每次调用函数传入一个学生成绩,得到已经传入成绩的平均分。

def outer():
    def inner(*args):
        sum = 0
        for i in args:
            sum += i
        avg = sum/len(args)
        return avg
    return inner


if __name__ == '__main__':
    ls = []
    while True:
        grade = int(input('输入学生成绩,输入0退出:'))
        if grade == 0:
            break
        else:
            ls.append(grade)
            f = outer()
            avgs = f(*ls)
            print('平均分:', avgs)

编写一个装饰器,使其能够打印输出所装饰函数的运算时间

import time


def deco1(func):
    def inner1(*args, **kwargs):
        stat = time.time()
        func(*args, **kwargs)
        end = time.time()
        print('耗时:', end - stat)
    return inner1


@deco1
def f1(a, b):
    while b < 100000:
        a += b
        b += 1
    print(a)


if __name__ == '__main__':
    f1(0, 1)

总结

通过本次几个案例了解了函数的定义与调用,高阶函数,闭包以及装饰器!

目录
相关文章
|
12天前
|
Python
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
Python中的函数是**一种命名的代码块,用于执行特定任务或计算
38 18
|
3天前
|
数据可视化 DataX Python
Seaborn 教程-绘图函数
Seaborn 教程-绘图函数
30 8
|
2天前
|
缓存 数据安全/隐私保护 Python
python装饰器底层原理
Python装饰器是一个强大的工具,可以在不修改原始函数代码的情况下,动态地增加功能。理解装饰器的底层原理,包括函数是对象、闭包和高阶函数,可以帮助我们更好地使用和编写装饰器。无论是用于日志记录、权限验证还是缓存,装饰器都可以显著提高代码的可维护性和复用性。
17 5
|
12天前
|
测试技术 开发者 Python
探索Python中的装饰器:从入门到实践
装饰器,在Python中是一块强大的语法糖,它允许我们在不修改原函数代码的情况下增加额外的功能。本文将通过简单易懂的语言和实例,带你一步步了解装饰器的基本概念、使用方法以及如何自定义装饰器。我们还将探讨装饰器在实战中的应用,让你能够在实际编程中灵活运用这一技术。
32 7
|
12天前
|
Python
探索Python中的装饰器:简化代码,增强功能
在Python的世界里,装饰器就像是给函数穿上了一件神奇的外套,让它们拥有了超能力。本文将通过浅显易懂的语言和生动的比喻,带你了解装饰器的基本概念、使用方法以及它们如何让你的代码变得更加简洁高效。让我们一起揭开装饰器的神秘面纱,看看它是如何在不改变函数核心逻辑的情况下,为函数增添新功能的吧!
|
11天前
|
存储 缓存 Python
Python中的装饰器深度解析与实践
在Python的世界里,装饰器如同一位神秘的魔法师,它拥有改变函数行为的能力。本文将揭开装饰器的神秘面纱,通过直观的代码示例,引导你理解其工作原理,并掌握如何在实际项目中灵活运用这一强大的工具。从基础到进阶,我们将一起探索装饰器的魅力所在。
|
7月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
93 0
|
3月前
|
算法 Python
Python编程的函数—内置函数
Python编程的函数—内置函数
22 0
|
7月前
|
算法 Python
Python编程实验四:函数的使用
Python编程实验四:函数的使用
105 0
|
7月前
|
存储 程序员 Shell
Python 进阶指南(编程轻松进阶):十、编写高效函数
Python 进阶指南(编程轻松进阶):十、编写高效函数
68 0