1

辞書に保存される都市と気温をユーザーに入力させようとしていました。しかし、Python は、KeyError が発生したことを通知し続けます。なぜこれが起こっているのですか?どうすれば修正できますか? ありがとうございました。

def main():
    city = {}
    keepgoing = True
    while keepgoing:    
        user = input("Enter city followed by temperature: ")
        for valu in user.split():
            city[valu] = city[valu]+1

        if user == "stop":
            keepgoing = False
            print(city)


main()
4

2 に答える 2

1

当面の問題を解決するには、以下を置き換えます。

        city[valu] = city[valu]+1

と:

        city[valu] = city.get(valu, 0) + 1

説明

city.get(valu)キーが存在しない場合の city[valu]デフォルト値を提供することを除いて、同じです。は似ていますが、デフォルト値を に設定します。Nonecity.get(valu, 0)0

完全なプログラム

あなたが何を望んでいたかを推測すると、コードの書き直しは次のとおりです。

def main():
    city = {}
    while True:
        user = input("Enter city followed by temperature: ")
        if user == "stop":
            print(city)
            break
        name, temperature = user.split()
        city[name] = temperature

main()

操作中:

Enter city followed by temperature: NYC 101
Enter city followed by temperature: HK 115
Enter city followed by temperature: stop
{'NYC': '101', 'HK': '115'}
于 2014-11-19T02:08:15.923 に答える