#.设计一个函数,计算存入成绩列表的平均分,要求去掉最高分和最低分
import math
def average_score(my_list):
my_max = my_min = my_list[0]
total = 0
for i in my_list:
if i > my_max:
my_max = i
elif i < my_min:
my_min = i
total += i
print(total,my_max,my_min)
return (total - my_min - my_max) / (len(my_list) - 2)
if __name__ == '__main__':
list1 = [101,100,99,98,97,96,25,18,26]
avg = average_score(list1)
print('%.2f' % avg)
#输入成绩,求哪个人得了最高分,哪个人得了最低分
def main(n):
"""
求输入成绩,求哪个人得了最高分,哪个人得了最低分
:param n:
当n = 0时,得到最高分的人
当n = 1时,得到最低分的人
:return:
返回得到最高分或最低分的人的列表
"""
names = ['刘备', '张飞', '曹操', '袁绍', '关羽', '赵云', '周瑜', '许诸']
list1 = []
list2 = []
list3 = []
list4 = []
for name in names:
score = input('请输入%s的成绩:' % name)
list1.append(score)
if n == 0:
for i in range(len(list1)):
if list1[i] == max(list1):
list2.append(i)
for x in list2:
list4.append(names[x])
if n == 1:
for j in range(len(list1)):
if list1[j] == min(list1):
list3.append(j)
for y in list3:
list4.append(names[y])
return list4
if __name__ == '__main__':
print(main(1))
def main():
names = ['关羽', '张飞', '赵云', '马超', '貂蝉']
subjects = ['语文', '数学', 'Python']
scores = [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]
#table = [[0 for _ in range(3)] for _ in range(5)]或者用这种方法生成一个二维数组,生成式语法不会引用同一个地址
# for name in names:
# for subject in subjects:
# score1 = input('请输入%s同学的%s成绩' % (name, subject))
for row, name in enumerate(names):
for col,subject in enumerate(subjects):
scores[row][col] = int(input('请输入%s同学的%s成绩' % (name, subject)))
print(row, col)
print(scores[row][col])
return scores
def main1():
names = ['关羽', '张飞', '赵云', '马超', '貂蝉']
subjects = ['语文', '数学', 'Python']
table = []
for row, name in enumerate(names):
print('请输入%s的成绩:' % name)
scores = []
for col, subject in enumerate(subjects):
score = int(input('%s: ' % subject))
scores.append(score)
table.append(scores)
print(table)
if __name__ == '__main__':
print(main())
main1()
def secondary_maximum(l):
"""
求列表中的第二大值,且不改变原数组结构
:param l: 传入的列表
:return: 第二大值
"""
list2 = sorted(l)
list2.reverse()
the_max = max(list2)
while the_max in list2:
list2 = list2[1:]
return list2[0]
if __name__ == '__main__':
list1 = [3, 3, 3, 2, 2, 1, 1, 0, 0, 2, 3, 2, 3, 1, 1, 2]
print('第二大值为:%d' % secondary_maximum(list1))
print(list1)