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)

总结

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

目录
相关文章
|
2天前
|
存储 Python
在Python中,匿名函数(lambda表达式)是一种简洁的创建小型、一次性使用的函数的方式。
【6月更文挑战第24天】Python的匿名函数,即lambda表达式,用于创建一次性的小型函数,常作为高阶函数如`map()`, `filter()`, `reduce()`的参数。lambda表达式以`lambda`开头,后跟参数列表,冒号分隔参数和单行表达式体。例如,`lambda x, y: x + y`定义了一个求和函数。在调用时,它们与普通函数相同。例如,`map(lambda x: x ** 2, [1, 2, 3, 4, 5])`会返回一个列表,其中包含原列表元素的平方。
13 4
|
1天前
|
Python
python之字符串定义、切片、连接、重复、遍历、字符串方法
python之字符串定义、切片、连接、重复、遍历、字符串方法
4 0
python之字符串定义、切片、连接、重复、遍历、字符串方法
|
1天前
|
Python
python函数
python函数
5 0
|
1天前
|
Python
python之print函数
python之print函数
7 0
|
2天前
|
Python
python装饰器详细分解讲解
python装饰器详细分解讲解
|
2天前
|
Python
使用Python计算有效值函数(RMS值)
使用Python计算有效值函数(RMS值)
8 0
|
1月前
|
算法 Python 容器
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
Python编程 - 不调用相关choose库函数,“众数“挑选器、随机挑选器 的源码编程实现
50 0
|
1月前
|
存储 程序员 Shell
Python 进阶指南(编程轻松进阶):十、编写高效函数
Python 进阶指南(编程轻松进阶):十、编写高效函数
55 0
|
1月前
|
存储 Shell C++
零基础学会python编程——输入 / 输出函数与变量
零基础学会python编程——输入 / 输出函数与变量
103 0
|
Python
Python编程中类的属性获取、设置、判断是否存在等,实战hasattr和getattr函数的应用案例!
Python编程中类的属性获取、设置、判断是否存在等,实战hasattr和getattr函数的应用案例!
152 0