Pythonで辞書を使ってサザエさんのキャラクターを職業別に出力

この記事を読むことで、

・Pythonの辞書の基本的な作り方
・キーと値の指定の仕方
・次のデータの追加方法
・辞書から「キーを指定」して「値を取り出す方法」

が学べます。
また、Pythonでの標準入力の書き方の復習にも触れております。

この記事で作成する辞書の具体例として、国民的アニメ「サザエさん」のキャラクターを用います。

辞書は、「キー」と「値」で構成されているので、「{(波かっこ)}」で括って、下記のように記述します。

character_dic={‘大黒柱’:’磯野波平’}

で、この場合は【キー】が「大黒柱」で、【値】が「磯野波平」です。
キーと値は「:」で区切っています。

この辞書にあと1人だけ(私の推しキャラ!)を追加してみます。

character_dic={‘大黒柱’:’磯野波平’,’ペット’:’タマ’}

辞書は、「 ,(カンマ) 」で区切ることによって次のデータが入ります。
同様にして、他のキャラクターも追加して、辞書character_dicは、この様になりました。

character_dic={‘大黒柱’:’磯野波平’,’主婦’:’フグ田サザエ’,’小学生’:’磯野カツオ’,’幼児’:’タラちゃん’,’ペット’:’タマ’}

この辞書をそのまま出力するコードはこちらです。

#サザエさんのキャラクターの辞書
#職業を「キー」、名前を「値」
character_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ'}

print(character_dic)

その実行結果です。

では、標準入力と単純なIF文を使って、少しアレンジをしていきたいと思います。

標準入力で、「d」と入力するとキー「大黒柱」が指定されて、値の「磯野波平」が出力されます。(ifの条件が真の時に該当)

「h」と入力するとキーに「housewife(主婦)」が指定されて値の「フグ田サザエ」を出力されます。(elifの条件が「h」の時に該当)

「e」と入力するとキーに「Elementary school student(小学生)」が指定されて値の「磯野カツオ」が出力されます。
(elifの条件が「e」の時に該当)

「p」と入力するとキーに「ペット」が指定されて「タマ」が出力されます。
(elifの条件が「p」の時に該当)

また、それ以外のテキトーな入力をすると、キーに「その他」が指定され、「伊佐坂先生」が出力されます。(elseに該当)

ここまでのコートを、かいつまんで解説すると、標準入力の直前に、

print(‘【d】大黒柱、【h】主婦、【e】小学生,【p】ペット 【記号】を入力>>>’,end=”)

と、書いています。
最後のend=”は、改行せずにこのメッセージの直後に【d】や【h】を入力できる様にしています。

標準入力は

job=input()

で、ここで【d】とか【h】などの文字を変数jobに格納します。

その後はIF文で分岐させています。

if job=='d':
    index='大黒柱'
elif job=='h':
    index='主婦'
elif job=='e':
    index='小学生'
elif job=='p':
    index='ペット'
else:
    index='その他'

その後にjobに入力された【d】や【h】がこのIF文による分岐で、indexに「大黒柱」や「主婦」などの辞書のキーが代入されます。

その代入されたindexを辞書のキーとして、キャラクター名を下記のprint文で出力しています。

print(character_dic[index])

辞書の最後に「伊佐坂先生」を加えました。

character_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}

では、これまでのコードと実行結果です。

#サザエさんのキャラクターの辞書
#職業を「キー」、名前を「値」
character_dic={'大黒柱':'磯野波平','主婦':'フグ田サザエ','小学生':'磯野カツオ','幼児':'タラちゃん','ペット':'タマ','その他':'伊佐坂先生'}


#標準入力でキーを指定
print('【d】大黒柱、【h】主婦、【e】小学生,【p】ペット 【記号】を入力>>>',end='')
job=input()


#IF文による分岐で辞書のキーを指定して、変数indexに代入する
if job=='d':
    index='大黒柱'
elif job=='h':
    index='主婦'
elif job=='e':
    index='小学生'
elif job=='p':
    index='ペット'
else:
    index='その他'

#辞書のキーにindexが入って、該当する値が出力される
print(character_dic[index])

ここから実行結果を見ていきます。ifとelif、そしてelseの分岐をイメージして、頭の中でトレースしながら実行しました。

標準入力で【d】を指定した場合。

標準入力で【h】を指定した場合。

標準入力で【e】を指定した場合。

標準入力で【p】を指定した場合。

標準入力でなんかテキトーなキー(ここでは【y】)を指定した場合。

サザエさんのキャラクターで辞書を使った解説は以上になります。

ご精読ありがとうございました。

■ 参考文献の紹介 ■
じっくり丁寧にPythonを学びたい方向けの書籍を紹介します。

Pythonを基礎から中級程度まで丁寧に学びたい方におすすめの書籍です。
まずはpaizaラーニングなどの学習コンテンツで1〜2巡(苦手な所は納得がいくまで何巡でも)してからこの本で学ぶと、自分の学習状況をブログなどでアウトプット出来るようになり、また、エラーなどの不明点を調べられる力もついていきます。

投稿者: nekosiestr

プログラミング学習中のロスジェネ(就職氷河期世代)の発達障害者です。 宜しくお願いします。 趣味で写真を撮っています。 プログラミングは、GAS/HTML/CSS/JavaScript/jQuery/PHP、 発達障害は、自閉症スペクトラムASD/ADHD、その他双極性障害やHSP(5人に1人の繊細さん)などの生きづらさを抱えておりますが、それでも楽しく生きて行きたいです!! 写真は、以前はコンパクトデジカメ、現在は、OLYMPUSミラーレス一眼を使っています。