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

Back


以下に示す int 型と文字列の要素を持つリストを最初に用意します.

d_list = [[2024, '2024'], [7, '7'], [3, '3']]

上のリストから年と月,日にちをそれぞれどちらかランダムに選んで,日付リストを作成します.さらに,日付リストを join メソッドで連結し,本日の日付である 2024.7.3 を画面に出力するプログラムを作ります.

当然ですが,join メソッドでは数値と文字を結合できませんので,混在した場合にはエラーとなります.そのエラーを回避するために,混在した場合には日付リストの要素を文字列に変換してから結合して表示するよう try 文による処理を用意してください.結果の表示は以下のようになることとします.

Student number: s236099

2024.7.3

------------------------
Student number: s236099

Found int in str
2024.7.3

------------------------
エラーなしの場合 エラーが発生した場合

この程度の処理であれば,例外処理を使用しなくても if 文などの場合分けで対応できます.ただし,今回は必ず例外処理でプログラムを作ってください.なので,ソースコードの中には if などの条件分岐は一切使用しません.
解答用紙を使用する際には,学生番号と名前の記入も忘れないでください.さらに,解答用紙自体がPythonのプログラムとなっていますので,実行してエラーの無いことを確認してから提出してください.

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


解答例

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

from random import randint as randi

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

try:
    d_list = [[2024, '2024'], [7, '7'], [3, '3']]
    date = [d_list[i][randi(0, 1)] for i in range(3)]
    d_str = '.'.join(date)
    print(f'{d_str}')
    
except TypeError:
    print('Found int in str')

    date = map(lambda n: str(n), date)
    d_str = '.'.join(date)
    print(f'{d_str}')

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


Back