if P1()>P2():
здесь происходит ваша ошибка
В Python все функции неявно возвращают None
, и операторы return могут использоваться для получения полезного значения
def f():
pass
возвращает None
при вызове
def f():
return 1
возвращает 1
при вызове
Обратите внимание, что ваша функция P2
не имеет оператора возврата, поэтому вызов ее приведет к None
. Как указано в сообщении об ошибке, >
(больше, чем оператор, который вы используете с результатом P2()
) не поддерживается между int
и NoneType
. В общем, None
несопоставимо с ==
, но считается, что лучше использовать is
при определении, является ли значение None
В чем разница между "Нет" "и" == Нет "