Тысячи операторов IF в Python - PullRequest
0 голосов
/ 04 июля 2018

Я начинающий с Python. В настоящее время я делаю инструмент для чтения автомобилей, чтобы развить навыки программирования. Все работает хорошо.

Когда я получаю код неисправности от модуля управления из автомобиля, я получаю P-код. Как:

P2348 и P21E2 (случайные коды P)

Я могу получить эти P-коды, но я хочу добавить к ним немного больше информации. P-коды могут быть связаны с описанием неисправности:

P2348 - Обнаружено пропуски зажигания (случайно)

Я хочу, чтобы моя программа предоставляла расширенную информацию, а не только код P. Есть тысячи кодов P, и у меня есть все с описанием. Но тысяча заявлений было бы плохим кодированием. Я мог бы найти P-код в текстовом файле и получить из него полную строку, но это не совсем вариант (если это невозможно в самом коде или скомпилировано с исполняемым файлом).

Что было бы изящным способом сделать это? Я сталкивался с этой проблемой раньше, когда брал уроки программирования. Тогда я использовал заявления IF (около 20) и ненавидел их.

1 Ответ

0 голосов
/ 04 июля 2018

Используйте словарь:

code_descr = {
   'P2348': 'Misfire detected',
   'P8866': 'Engine is on fire',
   'P7777': 'Tires missing',
}

тогда вы можете найти ключ в диктанте, if не требуется:

print('{} - {}'.format(code, code_descr[code]))

Вы можете написать код для чтения базы данных в каком-либо формате (csv, json и т. Д.) И сгенерировать dict, чтобы у вас были описания, внешние по отношению к программе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...