python2018のブログ

python プログラミング 独習 退屈なことはpythonにやらせよう 初心者

退屈なことはpythonにやらせよう 演習 第5章 5.6.2

第5章、2問目です

いろいろ調べて、以下で入力

def display_inventory(inventory):

    print ('持ち物リスト:')

    item_total = 0

    for k, v in inventory.items():

        print (str(inventory[k]) + ' ' + k)

        item_total += v

    print ('総アイテム数: ' + str(item_total))

 

def add_to_inventory(inventory,added_item):

    for i in added_item:

        inventory.setdefault(i,0)

        inventory[i] += 1

        return inventory

inv = {'金貨':42,'ロープ':1}

 

dragon_loot = ['金貨','手裏剣','金貨','金貨','ルビー']

inv = add_to_inventory(inv,dragon_loot)

display_inventory(inv)

 

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

プログラムは動きました。ところが。

RESTART:  プログラム/5-6-2-3.py

持ち物リスト:

43 金貨

1 ロープ

総アイテム数: 44

>>> 

うーん。dragon.lootが反映されていません

なぜ???

 

一文字違っても…文字列型になると字が緑に変わる エラーの見つけ方を一つ覚えました

久々に退屈なことはpythonにやらせようを読んでいます。

第5章、P124。つまずきました。

f:id:python2018:20180702150007g:plain

どこが間違っているのか。探してもなかなかみつかりません。

が、上の エラーメッセージをよく読むと。

「for k, v in guests.item():
AttributeError: 'dict' object has no attribute 'item'」

7行目の○guests.items が×guest.item となっていました。

 

その前、P120 下記、やはりエラーが。

どこが間違っているでしょうか?

the_board = {'top-L: ' ' , 'top-M': ' ', 'top-R': ' ',
             'mid-L: ' ' , 'mid-M': ' ', 'mid-R': ' ',
             'low-L: ' ' , 'low-M': ' ', 'low-R': ' '}

def print_board(board):
             print(board['top-L'] + 'I' + board['top-M'] + 'I' + board['top-R'])
             print('-+-+-')
             print(board['mid-L'] + 'I' + board['mid-M'] + 'I' + board['mid-R'])
             print('-+-+-')
             print(board['low-L'] + 'I' + board['low-M'] + 'I' + board['low-R'])

print_board(the_board)

 

正解は、  ×{'top-L: ' '  →○ {'top-L': ' '

top-Lを 「’  ’」シングルクォートでくるまないといけないんですが、片方が抜けていました。

この見分け方。「’ ’」でくるんで文字列(str)型になると字がに変わるんですね。

上記の間違った記述では、文字列が黒いままでした。top-L → top-L

 

文字列型になると緑に変わる

覚えておこうと思いました。

 

退屈なことはpythonにやらせよう プログラム超初心者の独習ブログ

退屈なことはpythonにやらせよう プログラム超初心者の独習ブログ です。

python 習得に、私が選んだのが「退屈なことはpythonにやらせよう」。

ただ、、難しすぎる!

一文字ちがっても、プログラムは受け付けてくれません。

でも独習者はどこが違っているのか、わからないまま時間が過ぎていきます。

そんなあなた。このブログを見ながら、一緒に学びませんか?f:id:python2018:20180701211726j:plain