見出し画像

pythonじゃんけん勇者の旅.Lv8-辞書-

じゃんけんプログラムを少しづつ改良してPythonのレベルアップを目指すnote.Lv8

前回のあらすじ

・defした関数の戻り値はreturnを使って受け取る

↓マガジンはこちら↓

今回の完成イメージ

1を入力したらグーを返し、2を入力したらチョキを返し、3を入力したらパーを返す

今回の学習内容

・辞書を使う

if文を使った場合

以前学習したif文を使った場合は下記のようになります

jyanken = input(r'あなたの手は?{1:グー,2:チョキ,3:パー}:')
jyanken = int(jyanken)

if jyanken == 1:
    print('あなたの手はグーです')
elif jyanken == 2:
    print('あなたの手はチョキです')
elif jyanken == 3:
    print('あなたの手はパーです')
else:
    print('数字の1,2,3のどれかを入力してください。終了します')

今回はじゃんけんなので3パターンのif分を書けばいいですが、これがもっとデータ量が多かったら書く量が大変ですよね。そこで「辞書」にデータをあらかじめ格納してデータを取り出す方法を行います。

辞書とは

辞書はkeyとvalueで構成されています。今回のじゃんけんの場合はkeyが「1」でvalueが「グー」を指します。
辞書は下記のように記述します

dic = {1:'グー'2:'チョキ'3:'パー'}

辞書を使ってみる

dic = {1:'グー'2:'チョキ'3:'パー'}

jyanken = input(r'あなたの手は?{1:グー,2:チョキ,3:パー}:')
jyanken = int(jyanken)

jyanken = dic[jyanken]

print('あなたの手は' + jyanken + 'です')

実行

1.下記のコードを「yuusya_lv8.py」として保存

import sys

dic = {1:'グー'2:'チョキ'3:'パー'}

def fast_input():
    print('じゃんけんはじめる?')
    txt = input(r'入力してね!{はい:y,いいえ:n}:')
    if txt == 'y':
        print('はいを選んだね!じゃんけんをはじめよう')
    elif txt == 'n':
        print('いいえを選んだね!終了するね')
        sys.exit()
    else:
        print('yとn以外を入力したね!終了するね')
        sys.exit()

def jyanken_input():
    num = input(r'あなたの手は?{1:グー,2:チョキ,3:パー}:')
    return num

fast_input()
jyanken = int(jyanken_input())
jyanken = dic[jyanken]

print('あなたは' +  jyanken + 'を選択しました')


2.pythonの実行
ターミナルから「yuusya_lv8.py」が保存されているディレクトリに移動し「yuusya_lv8.py」を実行。

おさらい

・辞書をつかってデータを格納し取り出す

次回予告

・未定!


この記事が気に入ったらサポートをしてみませんか?