Python TypeError:字符串索引必须是整数
所以,我试着为Pokédex编写代码,下面的代码部分用于打印Pokémon的统计数据。请注意,在这三本词典之前还有715本其他词典:Python TypeError:字符串索引必须是整数,python,Python,所以,我试着为Pokédex编写代码,下面的代码部分用于打印Pokémon的统计数据。请注意,在这三本词典之前还有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, 'SAt
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
>>>
回溯(最近一次呼叫最后一次):
文件“/Users/Cobalt/Documents/Python/Pokédex.py”,第154行,在
打印(口袋妖怪['HP'],
TypeError:字符串索引必须是整数
>>>
这个问题有没有简单的解决办法?如果有必要,我愿意重新格式化718本字典
顺便说一下,这是我在这个网站上的第一个问题,所以请不要对我太苛刻
Pokemon = input("Which Pokemon? ")
这使得Pokemon
成为一个字符串。然后,您可以通过执行以下操作来尝试访问此字符串:
Pokemon['HP']
现在解释器会抱怨,因为HP
不是字符串上下文中的有效索引。
我猜你是想在这里有一本字典吧
您可能想做的事情大致如下:
制作一本包含所有口袋妖怪的字典,例如我们可以称之为pokemon\u dict
pokemon_dict = { "xerneas" : Xerneas, .....}
selection = input("Which Pokemon? ")
pokemon_selected = pokemon_dict[selection]
print(pokemon_selected['HP'])
这使得Pokemon
成为一个字符串。然后,您可以通过执行以下操作来尝试访问此字符串:
Pokemon['HP']
现在解释器会抱怨,因为HP
不是字符串上下文中的有效索引。
我猜你是想在这里有一本字典吧
您可能想做的事情大致如下:
制作一本包含所有口袋妖怪的字典,例如我们可以称之为pokemon\u dict
pokemon_dict = { "xerneas" : Xerneas, .....}
selection = input("Which Pokemon? ")
pokemon_selected = pokemon_dict[selection]
print(pokemon_selected['HP'])
此声明
Pokemon = input("Which Pokemon? ")
将口袋妖怪设置为字符串。此语句
Pokemon = input("Which Pokemon? ")
将口袋妖怪设置为字符串。您需要像这样创建多维数组
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 = { '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'])
谢谢你的提示。但是,当我将代码更改为多维数组时,我得到了一个“无效的语法错误消息,然后将光标移到'yveltal'和冒号之间。还有什么问题吗?没关系,我发现了我的错误。谢谢你的帮助!谢谢你的提示。但是,当我将代码更改为多维数组时,我得到了一个错误。”“无效的语法错误消息,然后将光标移到'yveltal'和冒号之间。是否还有其他问题?没关系,我发现了错误。谢谢您的帮助!