Python期末复习题:函数
一、计算多个月份的平均访客量
设计函数,实现计算多个月份的平均访客量(为了完成本作业,你需要掌握:1.可变参数,2.遍历元组和列表)。根据提示,请补充下面的代码:
data=[200,388,123,456,987,342,767,234,124,345,123,234] # 设计specifty函数的参数以及函数的功能,以实现计算任意月份的平均访客量 # *************begin************# def specifty( ): # **************end*************# specifty(1,2,3,4) #计算2-5月的平均访客量,预期输出是488.50 specifty(10,9,8,7,6) #计算11-7月的平均访客量,预期输出是318.60
data=[200,388,123,456,987,342,767,234,124,345,123,234]
def specifty(*args):
sum = 0
for month in args:
sum += data[month]
avg = sum / len(args)
print(avg)
specifty(1,2,3,4)
specifty(10,9,8,7,6)
运行的结果是:
488.5
318.6
二、实现需要的输出
设计函数参数,编写函数代码实现需要的输出(为了完成本作业,你需要掌握:1.关键字参数 2.字典的遍历)。
测试说明:
测试输入: 预期输出:
name Alice
city GL
name Bob
gender M
job Teacher
编程要求
根据上面测试用例的输出,补充下面的代码:
#根据main函数以及输出设计person函数的参数以及函数的功能 # *************begin************# def person( ): # **************end*************# def main(): person('Alice',city='GL') person('Bob',gender='M',job='Teacher') if __name__=='__main__': main()
def person(name, city='', gender='', job='') :
if city:
message = f"name {name}\ncity {city}"
print(message)
elif gender and job:
message = f"name {name}\ngender {gender}\njob {job}"
print(message)
def main():
person('Alice',city='GL')
person('Bob',gender='M',job='Teacher')
if __name__=='__main__':
main()
运行的结果是:
name Alice
city GL
name Bob
gender M
job Teacher
三、自除数
编写函数输出自除数。一个不含0的数,如果它能被它的每一位除尽,则它是一个自除数。例如128是一个自除数,因为128能被1、2、8整除。编写函数selfDivisor(num)判断num是否为自除数,使用该函数输出不大于N的所有自除数。(注意,含有数字0的数不是自除数)要求:输入是一个正整数N,输出是一行,是不大于N的所有自除数,每个数后面有一个空格。例如:
输入:22
输出:1 2 3 4 5 6 7 8 9 11 12 15 22
def selfDivisor(num):
t=str(num)
if '0' in t:
return 0
for i in t:
if num % int(i) != 0:
return 0
return 1
n=int(input())
ls=[]
for i in range(1, n + 1):
if selfDivisor(i):
print(i, end=" ")
运行的结果是:
22
1 2 3 4 5 6 7 8 9 11 12 15 22
四、字母查找
定义一个函数来判断单词m是否可以由字符串n中出现的字母来组成。本题保证字符串中出现的字母均为小写字母,且不考虑n中字母使用次数。定义一个函数来判断单词m是否可以由字符串n中出现的字母来组成。
要求输入时在两行中分别输入两个字符串m,n,如果m,n 满足条件,则输出’FOUND‘ ,否则输出’NOT FOUND’。如果输入的m包含有除字母外的其他字符,输出’ERROR‘结束。
示例 1
输入:
word
world
输出:FOUND
示例 2
输入:
1a
输出:
ERROR
示例 3
输入:
at
bcda
输出:
NOT FOUND
def fd(m, n):
for i in m:
if i not in n:
return 'NOT FOUND'
return 'FOUND'
m = input()
if m.isalpha():
n=input()
print(fd(m, n))
else:
print('ERROR')
运行的结果是:
word
world
FOUND
1a
ERROR
at
bcda
NOT FOUND