ねらい: 辞書型の基本的な操作を知る.
辞書型に対する様々な操作を含んだ以下の手順を順次実行するスクリプトを作成し,辞書型を扱う方法を確認せよ.
各処理の方法は教科書に記載があるため,不明な場合は教科書を確認せよ.
ねらい: 辞書型の基本的な操作を組み合わせて,所定の機能を実現する.
教科書 p.101 にある国際電話の国番号と国名の対応表が,以下に示すように辞書型 country_code として与えられている. キーが国番号(整数型),値が国名(文字列型)である.
country_code = {
93: 'アフガニスタン',
54: 'アルゼンチン',
43: 'オーストリア',
55: 'ブラジル',
86: '中国',
53: 'キューバ',
20: 'エジプト',
33: 'フランス',
49: 'ドイツ',
30: 'ギリシャ',
91: 'インド',
39: 'イタリア',
81: '日本',
60: 'マレーシア',
687: 'ニューカレドニア',
7: 'ロシア',
966: 'サウジアラビア',
82: '韓国',
44: 'イギリス',
1: 'アメリカ合衆国'
}
(このソースコードをコピーして,自分が作るスクリプトの冒頭にペーストせよ)
ねらい: 辞書を利用した文字列処理,文字列の扱いの復習
換字式暗号とは,暗号化したい対象の文(平文)を,適当なまとまり(1文字あるいは数文字)ごとに別の文字や記号に置き換えて暗号文を作成する暗号化方式である.
置き換える文字列として3文字の野菜や果物の名前を利用した換字式暗号(野菜果物暗号)を考える.暗号化のための対応表が,以下のような辞書型 conversion_table で与えられている.キーが暗号文,値が平文である.
conversion_table = {
'あけび': 'A',
'あずき': 'B',
'あろえ': 'C',
'あんず': 'D',
'いちご': 'E',
'うこん': 'F',
'おおば': 'G',
'おくら': 'H',
'かかお': 'I',
'かぼす': 'J',
'かりん': 'K',
'きうい': 'L',
'ざくろ': 'M',
'すいか': 'N',
'すだち': 'O',
'すもも': 'P',
'せろり': 'Q',
'たかな': 'R',
'つくし': 'S',
'とまと': 'T',
'なすび': 'U',
'ぱせり': 'V',
'ぶどう': 'W',
'へちま': 'X',
'みかん': 'Y',
'みつば': 'Z',
'みんと': '.',
'めろん': ',',
'もやし': ':',
'ゆりね': ';',
'らいち': '!',
'らいむ': '?',
'りんご': ' '
}
例えば,この辞書に基づいて平文 'ACE' を暗号化すると,暗号文 'あけびあろえいちご' が得られる.
与えられた文字列型の暗号文を,辞書 conversion_table を参照して文字列型の変数に平文を生成して表示するプログラムを作成し,以下の暗号文を解読(平文に変換)して表示せよ.
みかんすだちなすびりんごあけびたかないちごりんごとまとおくらいちごりんごきういかかおおおばおくらとまとりんごすだちうこんりんごとまとおくらいちごりんごぶどうすだちたかなきういあんずみんと
以下はヒントである.
本課題のプログラムの作成にあたっては,既に学んだ以下の知識が必要になる可能性がある(全て必要というわけではなく,考案した方法によっては必要ないかもしれない).前回までの実習内容を再確認せよ.
更なるアドバイスとして,どこから手をつけてよいかわからない場合,まず,文字列を3文字ずつ取り出して表示するプログラムを作成し,次に,取り出した3文字を変換する処理を追加することを考えよ.
ねらい: タプルとリストの同じ点,違う点について確認する.
タプルは内容が変更できないリストと考えることができる. 内容が変更できないことで,適した用途はリストと異なる. 以下の操作をインタラクティブシェルで実行し,タプルとリストの同じ点,違う点について確認せよ.
ウィンドウを縦方向に最大化すれば,全ての処理と結果が1枚のスクリーンショットにおさまる分量であるが,どうしても入らない場合は,先頭部分が欠けていてもよい.
ねらい: タプルの使用,辞書に対する for 文の使用
日本では西暦と和暦が併用されている. 和暦は,元号と年の組み合わせで年を表す手法である.明治時代以降の近代では天皇の在位期間には単一の元号を使うようになっている.
明治以降の元号についての情報が,以下のように辞書型 japanese_era で与えられている.
japanese_era = {
'明治': (1868, 1912),
'大正': (1912, 1926),
'昭和': (1926, 1989),
'平成': (1989, 2019),
'令和': (2019, 2024)
}
キーは元号の文字列,値は2要素のタプルである. タプルの最初の要素はその元号の開始年,次の要素はその元号の終了年(終了年の途中までその元号が使用された)である. ただし,令和の継続年数は不明であるため,便宜上終了年を2024としている.
辞書に対する for 文(教科書を参照せよ)を用いて,japanese_era に基づいて以下の表示を行うプログラムを作成せよ. 各元号の年代が何年続いたかは,自分で手計算するのではなく,辞書に格納されている値から算出せよ.
明治は1868年から1912年まで45年間です.
大正は1912年から1926年まで15年間です.
昭和は1926年から1989年まで64年間です.
平成は1989年から2019年まで31年間です.
令和は2019年から2024年まで6年間です.