[英]TypeError: string indices must be integers
因此,我試圖為神奇寶貝編寫代碼,並且將下面的代碼部分設置為打印出神奇寶貝的統計信息。 請注意,這三個詞典之前還有715個其他詞典:
Xerneas = {'HP': 126, 'Atk': 131, 'Def': 95, 'SAtk': 131, 'SDef': 98, 'Spd': 99,
'Ability': "Fairy Aura", 'Type': "Fairy"}
Yveltal = {'HP': 126, 'Atk': 131, 'Def': 95, 'SAtk': 131, 'SDef': 98, 'Spd': 99,
'Ability': "Dark Aura", 'Type': "Dark/Flying"}
Zygarde = {'HP': 108, 'Atk': 100, 'Def': 121, 'SAtk': 81, 'SDef': 95, 'Spd': 95,
'Ability': "Aura Break", 'Type': "Dragon/Ground"}
Mode = input('Which mode? ')
if Mode == "Pokedex":
Pokemon = input("Which Pokemon? ")
print(Pokemon['HP'],
Pokemon['Atk'],
Pokemon['Def'],
Pokemon['SAtk'],
Pokemon['SDef'],
Pokemon['Spd'],
Pokemon['Ability'],
Pokemon['Type'])
因此,我嘗試運行代碼並調用Zygarde的信息,但是出現了以下錯誤:
Traceback (most recent call last):
File "/Users/Cobalt/Documents/Python/Pokédex.py", line 154, in <module>
print(Pokemon['HP'],
TypeError: string indices must be integers
>>>
有解決這個問題的簡便方法嗎? 如有必要,我願意重新格式化718個詞典。
順便說一句,這是我在本網站上的第一個問題,所以請不要對我太苛刻。
您需要像這樣創建一個多維數組
pokemon = { 'Xerneas': {'HP': 126, 'Atk': 131, 'Def': 95, 'SAtk': 131, 'SDef': 98, 'Spd': 99,
'Ability': "Fairy Aura", 'Type': "Fairy"},
'Yveltal': {'HP': 126, 'Atk': 131, 'Def': 95, 'SAtk': 131, 'SDef': 98, 'Spd': 99,
'Ability': "Dark Aura", 'Type': "Dark/Flying"},
'Zygarde': {'HP': 108, 'Atk': 100, 'Def': 121, 'SAtk': 81, 'SDef': 95, 'Spd': 95,
'Ability': "Aura Break", 'Type': "Dragon/Ground"}
}
然后,當您詢問要使用哪種神奇寶貝時:
pokemon_type = input("Which Pokemon? ")
print(pokemon[pokemon_type]['HP'],
pokemon[pokemon_type]['Atk'],
pokemon[pokemon_type]['Def'],
pokemon[pokemon_type]['SAtk'],
pokemon[pokemon_type]['SDef'],
pokemon[pokemon_type]['Spd'],
pokemon[pokemon_type]['Ability'],
pokemon[pokemon_type]['Type'])
Pokemon = input("Which Pokemon? ")
這使Pokemon
成為一個字符串。 然后,您嘗試通過執行以下操作訪問此字符串:
Pokemon['HP']
現在,解釋器抱怨是因為HP
在字符串上下文中不是有效索引。 我猜你打算在這兒放字典嗎?
您可能想要做的事情與此類似:
制作一個包含所有神奇寶貝的字典,例如,我們可以稱它為pokemon_dict
pokemon_dict = { "xerneas" : Xerneas, .....}
selection = input("Which Pokemon? ")
pokemon_selected = pokemon_dict[selection]
print(pokemon_selected['HP'])
這個說法
Pokemon = input("Which Pokemon? ")
將Pokemon
設置為字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.