Спасибо за помощь. Мне удалось продвинуться вперед, но я еще не до конца. Может быть, это понятнее для других, но для себя я следовал инструкциям и сделал следующее:
... но на шаге 1. выше , он автоматически создает приложение для вас, когда вы создаете «Регистрацию каналов бота», поэтому шаг 2 создания приложения не требуется, я создал второе приложение и использовал его в своих настройках, и я думаю, что именно здесь я ошибался. [ 118]
Спасибо за вашу помощь.
С другой стороны, как только вышеперечисленное было исправлено, и я удалился из компании Wifi, все прошло хорошо. Проблема с блокировкой сети!
В Python нет встроенного выражения, позволяющего игнорировать исключение (или возвращать альтернативные значения & c в случае исключений), поэтому невозможно, буквально говоря, «обрабатывать исключения в понимание списка ", потому что понимание списка - это выражение, содержащее другое выражение, не более того (т. е. нет операторов, и только операторы могут перехватывать / игнорировать / обрабатывать исключения).
Вызовы функций являются выражениями, а тела функций могут включать в себя все нужные вам операторы, поэтому делегирование оценки подверженного исключениям подвыражения функции, как вы заметили, является одним из возможных обходных путей (другие, когда это возможно, являются проверками значений, которые могут вызывать исключения , как также предлагается в других ответах).
Правильные ответы на вопрос "как обрабатывать исключения в понимании списка "все выражают часть всей этой истины: 1) буквально, т.е. лексически В самом понимании вы не можете; 2) практически вы делегируете задание функции или проверяете наличие ошибок склонны к ценностям, когда это возможно. Таким образом, ваше неоднократное утверждение, что это не ответ, является необоснованным.
Я не видел, что любой ответ упомянул это. Но этим примером был бы один способ препятствовать тому, чтобы исключение было повышено для известных провальных случаев.
eggs = (1,3,0,3,2)
[1/egg if egg > 0 else None for egg in eggs]
Output: [1, 0, None, 0, 0]
Вы можете использовать
[1/egg for egg in eggs if egg != 0]
, это просто пропустит нулевые элементы.
Нет лучшего способа. Во многих случаях вы можете использовать избегание, как это делает Питер
Другой вариант - не использовать понимание
eggs = (1,3,0,3,2)
result=[]
for egg in eggs:
try:
result.append(egg/0)
except ZeroDivisionError:
# handle division by zero error
# leave empty for now
pass
Вам решать, будет ли это более громоздким или нет