函数练习—可变参数练习
练习1:
编写一个函数cacluate, 可以接收任意多个数,返回的是一个元组.
元组的第一个值为所有参数的平均值, 第二个值是大于平均值的所有数.
def cacluate(*args):
sum_num=sum(args)
# print(sum_num)
ave_num=int(sum(args)/len(args))
# print(ave_num)
li=[]
for i in args:
if i > ave_num:
li.append(i)
return (ave_num,li)
print(cacluate(1,2,3,4,5))
结果:
练习2:
编写一个函数, 接收字符串参数, 返回一个元组,‘ehllo WROLD’
元组的第一个值为大写字母的个数, 第二个值为小写字母个数.
def st(*args):
a=args[0]
upper=0
slower=0
for i in a:
if i.isupper() == True:
upper += 1
if i.islower() == True:
slower += 1
return (upper, slower)
print(st('ehllo,WROLD'))
结果:
练习3:
编写函数, 接收一个列表(包含30个整形数)和一个整形数k, 返回一个新列表.
函数需求:
- 将列表下标k之前对应(不包含k)的元素逆序;
- 将下标k及之后的元素逆序;
[1,2,3,4,5] 2 [2,1,5,4,3]
import random
list = []
def fun(alist, k):
if k < 0 or k > len(alist):
return 'error key'
return alist[:k][::-1] + alist[k:][::-1]
print(fun([1, 2, 3, 4, 5], 2))
结果: