-1

ここに画像の説明を入力ここで何が間違っているのかわかりませんが、重要なエラーが発生し続けます。理由がわかりません。何が欠けていますか?

campers = {'pb' : 'Pooder Bennet', 'jf' : 'Jupiter Fargo',
           'rb' : 'Randy Buffet', 'bl' : 'Botany Lynn',
       'bt' : 'Boris Tortavich', 'tn' : 'Trinda Noober',
       'fj' : 'Freetus Jaunders', 'nt' : 'Ninar Tetris', 
       'gm' : 'Gloobin Marfo', 'nk' : 'Niche Kaguya',
       'bd' : 'Brent Drago', 'vt' : 'Volga Toober',
       'kt' : 'Kinser Talebearing', 'br' : 'Bnola Rae',
       'nb' : 'Nugget Beano', 'yk' : 'Yeldstat Krong',
       'gy' : 'Gelliot Yabelor', 'il' : 'Illetia Dorfson',
       'ct' : 'Can Tabber', 'tv' : 'Trinoba Vyder'}

    campers_outside_theater = random.sample(campers.keys(), 5)
    people = campers_outside_theater + ['Troid, the counselor from the bus.']
    choices = '\n\n'.join('%d. %s' % (i + 1, campers[p]) for (i, p) in enumerate(people))
4

2 に答える 2

2

これにより、必要なものがほとんど得られます。

import random
campers = {'pb' : 'Pooder Bennet', 'jf' : 'Jupiter Fargo',
           'rb' : 'Randy Buffet', 'bl' : 'Botany Lynn',
       'bt' : 'Boris Tortavich', 'tn' : 'Trinda Noober',
       'fj' : 'Freetus Jaunders', 'nt' : 'Ninar Tetris', 
       'gm' : 'Gloobin Marfo', 'nk' : 'Niche Kaguya',
       'bd' : 'Brent Drago', 'vt' : 'Volga Toober',
       'kt' : 'Kinser Talebearing', 'br' : 'Bnola Rae',
       'nb' : 'Nugget Beano', 'yk' : 'Yeldstat Krong',
       'gy' : 'Gelliot Yabelor', 'il' : 'Illetia Dorfson',
       'ct' : 'Can Tabber', 'tv' : 'Trinoba Vyder'}

campers_outside_theater = random.sample(campers.keys(), 5)
people = campers_outside_theater #+ ['Troid, the counselor from the bus.']
choices = '\n\n'.join('%d. %s' % (i + 1, campers[p]) for (i, p) in enumerate(people))
print(choices)

keys(people)ありましたが、そのような動物はありません - それが最初のエラーでした。それはKeyErrorではなく、NameError(keys定義されていなかったため) でした。次に、キーを削除したときに、キーとしてenumerate(people)使用しようとしたために実際のキーエラーが発生しまし'Troid, the counselor from the bus.'た...しかし、それは1つではありません. バスに乗っている人に彼を含めたいと思っていると思いますが、別の方法で行う必要があります. おそらく、キャンパーの辞書に彼を含め、無作為サンプルを取得した後は常に彼をキーに追加してください。

于 2013-12-04T23:27:56.653 に答える
1

この行がエラーの原因です:

choices = '\n\n'.join('%d. %s' % (i + 1, campers[p]) for (i, p) in enumerate(people))

その理由は、次の行によるものです。

people = campers_outside_theater + ['Troid, the counselor from the bus.']

campersという名前は辞書に載っていませんTroid, the counselor from the bus.

これを修正するには:

>>> campers.update([('Troid', 'the counselor from the bus.')])
于 2013-12-04T23:40:15.313 に答える