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

Back


以下に示すように 1 から 20 までの乱数を2個発生させて,小さい方の数から大きい方の数まで * を表示することを10回繰り返すプログラムを作成しましょう.

Student number: s236099

          1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20
--------------------------------------------------------------------
 9 - 13:                          *  *  *  *  *
14 - 16:                                         *  *  *
15 - 19:                                            *  *  *  *  *
10 - 14:                             *  *  *  *  *
13 - 13:                                      *
 2 - 20:     *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
 3 -  7:        *  *  *  *  *
 9 - 11:                          *  *  *
 2 - 16:     *  *  *  *  *  *  *  *  *  *  *  *  *  *  *
 8 -  9:                       *  *

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

上部の目盛り代わりの数値とハイフンラインも反復処理を利用しましょう.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください.

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


解答例

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

import random

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

print('        ', end = '')

for i in range(1, 21):
    print(f'{i:>3}', end = '')
else:
    print()

for _ in range(68):
    print('-', end = '')
else:
    print()

for _ in range(10):
    small = random.randint(1, 20)
    large = random.randint(1, 20)

    if small > large:
        small, large = large, small

    print(f'{small:>2} - {large:>2}:', end = '')

    for j in range(1, small):
        print('   ', end = '')

    for j in range(small, large + 1):
        print('  *', end = '')
    else:
        print()


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


Back