こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

progateを用いて、pythonの勉強を始めた

progateを用いて、pythonの勉強を始めたばかりです。
どうしても腑に落ちない箇所がありまして、ご質問いたしました。

items = {' apple ' : 100, ' banana':200}
for item_name in items :
print( item_name + 'は1個' + str( items [item_name]+ '円です')

という箇所なのですが、この問題のヒントのところに
「果実のリストは items 、果実の名前は item_nameという変数に代入されているので、item[item_name]とすることで、果実一個の値段を取得できます。

と書いてありました。
なぜ、[item_name]とするだけで、数値が取得できるのでしょうか。
for式の特徴がいまいち、頭に入っていないのかもしれません。
よろしくお願いいたします。

投稿日時 - 2020-02-24 17:05:55

QNo.9716431

困ってます

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

まず、items[item_name] で一つの意味になるので、区切るところを間違えないようにしてくださいね。

1行目のitemsの代入で、「ディクショナリ」や「辞書」と呼ばれるものを使っています。
まずは、これについて検索して調べてみて下さい。よくわからなければ、「連想配列」や「HashMap」などのキーワードでも検索してみて下さい。わかりやすい説明ページが見つかると思います。

このディクショナリで、文字列の名前をキーにした「値の保持」ができます。
つまり、appleという文字列をキーに、100の値を保持し、
bananaという文字列をキーに、200の値を保持します。
そのディクショナリをitemsとして代入しています。

そして、そのitemsに保持した値を参照する場合には、items[キー文字列] で参照します。
試しに、プログラムの最後の行に、次の行を書き足して実行してみて下さい。
print(items['apple'])
保持した100の値が表示されるはずです。

ここまで理解できたら、あとはfor文です。
item_nameには、キーの文字列が繰り返すたびに、順次代入されます。
このプログラムのケースでは、'apple'、'banana'の2つのキーの分だけループします。
つまり、1回目のループで、item_nameが'apple'になり、2回目のループでitem_nameが'banana'になります。

これでこのプログラムが理解できたのではないでしょうか。

投稿日時 - 2020-02-24 17:30:49

あなたにオススメの質問