Python初级案例教学,函数的定义与调用,高阶函数,闭包以及装饰器【第四课】
【摘要】 Python 编写一个函数 cacluate Python编写一个函数,接收字符串参数返回一个元组 使用高阶函数方式设计Calc函数,实现加、减、乘、除、乘方等计算功能 使用闭包编写一个学生成绩平均统计。要求每次调用函数传入一个学生成绩,得到已经传入成绩的平均分。 编写一个装饰器,使其能够打印输出所装饰函数的运算时间 总结 Python 编写一个函数 cacluate编写一个函数 cacl...
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)
总结
通过本次几个案例了解了函数的定义与调用,高阶函数,闭包以及装饰器!
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)