python2018のブログ

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

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

久々に退屈なことは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

 

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

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