Странное логическое выражениеPython

Программы на Python
Ответить
Anonymous
 Странное логическое выражение

Сообщение Anonymous »

Я пытаюсь отладить (переписать?) чужое веб-приложение Python/cherrypy и столкнулся со следующим оператором if:

Код: Выделить всё

if not filename.endswith(".dat") and (
filename.endswith(".dat") or not filename.endswith(".cup")
):
raise RuntimeError(
"Waypoint file {} has an unsupported format.".format(
waypoint_file.filename
)
)
Я думаю, это то же самое, что:

Код: Выделить всё

if not A and (A or not B):
Если да, то:
  • если A = False, то оно сводится к если True и (False или нет B):

    Код: Выделить всё

    if True and not B
    = не B
[*]если A = True, тогда оно сводится к if False: т.е. блок if никогда не будет выполнен


I Я почти уверен, что цель блока if — предупредить пользователя о том, что расширение рассматриваемого файла не является ни .DAT или .CUP, но мне не кажется, что он действительно выполняет это намерение.
Я думаю, что блок if должен быть:

Код: Выделить всё

if(not .DAT and not .CUP) = if not(.DAT or .CUP)
Это правильно?

Подробнее здесь: https://stackoverflow.com/questions/792 ... expression
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»