Лучше использовать словарь вместо отдельных переменных. Затем вы используете поиск по словарю, чтобы найти те, которые вам нужны.
class Mega:
def __init__(self, name, types, moves):
self.name = name
self.types = types
self.moves = moves
megas = {'ropher': Mega('Ropher', 'Sound', ['Screech', 'Coil']),
'mijik': Mega('Mijek', 'Light', ['Solar Beam', 'Healing Sunlight'])}
key = input('What mega? ').lower()
print(f"your mega is {megas[key].name}, a {megas[key].types} type")
Вы также не должны вызывать свою переменную input
, потому что вы переопределяете встроенную функцию. Выше я переименовал его в key
.
Обратите внимание: если ключ, который вы пытаетесь найти, не существует в словаре, то ваша программа остановится с KeyError
. Если вы хотите предотвратить это, вы можете сначала использовать in
, чтобы проверить, существует ли ввод как один из ключей в словаре:
if key in megas:
print(f"your mega is {megas[key].name}, a {megas[key].types} type")
else:
print("not a valid mega")
или вы можете поймать KeyError
:
try:
print(f"your mega is {megas[key].name}, a {megas[key].types} type")
except KeyError:
print("not a valid mega")