一个歌手
scores = []
for i in range(3):
score = float(input('scores[' + str(i + 1) + ']='))
scores.append(score)
average = (sum(scores) - max(scores) - min(scores)) / (len(scores) - 2)
print('歌手最终得分:{:.2f}'.format(average))
保证评委输入分数在指定范围
scores = []
for i in range(5):
score = float(input('scores[' + str(i + 1) + ']='))
scores.append(score)
while True:
if score < 0 or score > 10:
print('请输入一个0至10的分数')
score = float(input('scores[' + str(i+1) + ']='))
else:
break
average = (sum(scores) - max(scores) - min(scores)) / (len(scores) - 2)
print('歌手最终得分:{:.2f}'.format(average))
反思:
钻牛角尖了,没意识到用else来break,而是直接用break导致卡死。
重点:
不要被模板束缚,需要有自己的思维,要全局审视
课堂练习3、5个歌手得分计算程序
下面是3个的,五个的话可以改3位5
tt =[]
for j in range(3):
scores = []
print("第"+str((j+1))+"位")
for i in range(5):
score = float(input('scores[' + str(i + 1) + ']='))
scores.append(score)
while True:
if score < 0 or score > 10:
print('请输入一个0至10的分数')
score = float(input('scores[' + str(i + 1) + ']='))
else:
break
average = (sum(scores) - max(scores) - min(scores)) / (len(scores) - 2)
tt.append(average)
print('歌手最终得分:{:.2f}'.format(average))
print(tt)