Asics6789
@Asics6789
Студент 2 курса ФКН ВГУ, основной язык Java

Не могу понять, в чём именно ошибка синтаксиса?

Если кому нужна задача, то вот:
Обозначим через ДЕЛ(n,m) утверждение «натуральное число n делится без
остатка на натуральное число m». Для какого наибольшего натурального числа А
формула
¬ДЕЛ(x,А) → (ДЕЛ(x,6) → ¬ДЕЛ(x,9))
тождественно истинна (то есть принимает значение 1 при любом натуральном
значении переменной х)?


Код с ошибкой:
def Del(n, m):
    if n % m == 0:
        return True
    else:
        return False


for A in range(1, 10000):
    flag = True
    for x in range(1, 10000):
        if ( not(Del(x,A)) <= (Del(x,6) <= not(Del(x,9))) ) == False:
            flag = False
    if flag == True:
        print(A)


Собственно сама ошибка:
File "d:\Geek\UmShool\November\lesson_6\main.py", line 11
if ( not(Del(x,A)) <= (Del(x,6) <= not(Del(x,9))) ) == False:
(Указатель падает на "not")
SyntaxError: invalid syntax

Вот, что говорит Pylance:
6191e114c5164753120358.png
  • Вопрос задан
  • 751 просмотр
Решения вопроса 1
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
Нужна скобка перед not:
if ( not(Del(x,A)) <= (Del(x,6) <= (not(Del(x,9)))) ) == False:

И вот так пишут только джуны:
if ... ==False

И вообще, никто никогда не применяет арифметические операции типа <= к булевым значениям.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы