LittlePrince
@LittlePrince

Как работает код в python и почему разные значения?

Ребят, доброй ночи.
Помогите разобраться, как работают два этих кода:
x = 17
if 1000 <= x <= 9999 and ((x % 7) == 0) or ((x % 17)== 0):
    print("YES")
else:
    print("NO")

Данный код выдает результат "YES"
Но если изменить цифру на 14, то выдаст "NO"
x = 14
if 1000 <= x <= 9999 and ((x % 7) == 0) or ((x % 17)== 0):
    print("YES")
else:
    print("NO")

Не до конца понимаю, как это работает.
14 не выполняет первое условие - эта цифра меньше 1000, но 14 делится на 7 без остатка, а на 17 с остатком.
С 17 такая же проблема - эта цифра меньше 1000, условие первое не выполнено, но эта цифра делится на 17 без остатка, но как так происходит, что с цифрой 14 - получается NO, а с цифрой 17 YES?

Я сделала перестановку скобок, но так до конца и не поняла, как этот код работает, а именно, как тут работают скобки?!
x = int(input())
if 1000 <= x <= 9999 and (x % 7 == 0 or x % 17 == 0):
    print("YES")
else:
    print("NO")
  • Вопрос задан
  • 104 просмотра
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
У тебя условие имеет вид: A and B or C, и вычисляется как (A and B) or C.
Если C истина, то условие будет иметь вид (A and B) or True, что всегда даст истину, независимо от A and B.
Полагаю, ты был уверен, что условие вычисляется как A and (B or C), но набор скобок у тебя этому порядку не соответствует.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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