Какой наилучший вариант сокращения данного кода?
Подскажите, как сократить код, чтобы не расписывать каждое значение из таблицы. Например, человек вводит Имя, которое так-же находится в файле xlsx и выводит всю строку где это Имя содержится. Грубо говоря смысл такой:
if a == 'Вводим любое имя из таблицы':
print(un.loc['Ищет это имя в таблице и выводит всю строку где это имя содержится'])
Текущий код:
# -*- coding: utf-8 -*-
import pandas as pd
un = pd.read_excel(r"database.xlsx", sheet_name='units', index_col ='Имя существа')
a = input()
if a == 'Копейщик':
print(un.loc['Копейщик'])
elif a == 'Алебардист':
print(un.loc['Алебардист'])
elif a == 'Лучник':
print(un.loc['Лучник'])
elif a == 'Стрелок':
print(un.loc['Стрелок'])
elif a == 'Грифон':
print(un.loc['Грифон'])
elif a == 'Королевский грифон':
print(un.loc['Королевский грифон'])
else: print('Ошибка')
Ссылка на database.xlsx
https://my-files.su/tgksh0
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
In [10]: a = 'Стрелок'
In [11]: print(un.loc[a] if a in un.index else "Ошибка")
id marksman
Уровень 2+
Атака 6
Защита 3
Урон 2-3
Здоровье 10
Скорость 6
Прирост 9
Цена 150 золота
Name: Стрелок, dtype: object
In [12]: a = "Blah-Blah"
In [13]: print(un.loc[a] if a in un.index else "Ошибка")
Ошибка
вариант с обработкой исключения:
try:
print(un.loc[a])
except KeyError:
print("Ошибка")