プログラミング入門I 宿題 2024.06.12

Back


50 から 100 の範囲の整数を 100 個乱数により発生させ,それをテストの点数とします.評価の S から D までの人数がそれぞれ何人になるかを filter 関数を使用して求めるプログラムを作成しましょう.

Student number: s236099
74 81 67 63 100 84 72 67 74 98 71 74 77 54 76 80 52 82 83 50 96 83 70 84 63 95 66 94 69 55 65 51 84 64 87 97 55 74 100 54 85 53 63 98 61 61 64 88 51 78 98 51 97 67 68 66 50 73 78 80 96 81 97 78 72 63 72 71 72 93 95 100 54 94 70 82 91 89 63 70 75 67 97 57 53 80 90 72 89 68 77 91 78 80 66 71 70 76 85 61
S: 20
A: 19
B: 26
C: 21
D: 14

------------------------

成績評価の基準ですが,島根大学の基準を使用してください.

点数90点以上80~8970~7960~6960点未満
評価SABCD

基準をリストにしておくと,反復処理により各人数の表示を簡潔にできますので,場合分けの繰り返しを避けましょう.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください.

指定の解答用紙を使用していない,実行時にエラーが出る,学生番号と名前が無い,というような答案は提出されても採点しません.注意してください.


解答例

# #############################
#
# プログラミング入門II 宿題 2024.6.12
# 学生番号:  s236099
# 氏名:     松江 花子
#
# #############################

import random

print('Student number: s236099')
print('')

score = [random.randint(50, 100) for _ in range(100)]
print(*score)

level = [101, 90, 80, 70, 60, 50]
grade = ['S', 'A', 'B', 'C', 'D']

for i in range(5):
    print(f'{grade[i]}: ', end = '')
    print(len(list(filter(lambda n: level[i] > n >= level[i + 1], score))))
    

print('\n------------------------\n')


Back