Какая разница в механизме работы and и or в цикле while на примере?
Здравствуйте!
Прохожу обучающий материал по питону (создание игры крестики-нолики)
Столкнулся с отсутствием информации о принципе работы 'and' и 'or' в конкретном случае
def player_choice(board): # Запрашиваю у игрока какую клетку он выбирает
position=0
while position not in [1,2,3,4,5,6,7,8,9] and not space_check(board,position):
position=int(input('Введите число от 1 до 9 ----> '))
return position
### Не могу понять почему при использовании 'and' если ты попал в диапазон 1-9 (position not in [1,2,3,4,5,6,7,8,9] ) клетка будет заполнена даже если она не пустая (то есть 'not space_check(board,position' игнорируется). Но если вместо 'and' использовать 'or' оба условия будут выполнятся и если ты и попал в диапазон 1-9 но клетка будет не пустая, тебя опять выведет на запрос 'Введите число от 1 до 9 ----> ' .
Прошу, объясните. Перебрал с десяток сайтов но на этот вопрос ответа толком нет.
'
Спасибо, что ответил! Наверное в первом примере 'x and y', должно стоять 'or'?
Всё работает, но только в том случае если использовать 'or' .
Я правильно понял, что:
"x or y ' конечное выражение будет True , только если x = True И y = True.
x and y - конечное выражение будет True ,если x = True ИЛИ y = True ИЛИ x = True и y = True ???
Я правильно понял, что:
"x or y ' конечное выражение будет True , только если x = True И y = True.
x and y - конечное выражение будет True ,если x = True ИЛИ y = True ИЛИ x = True и y = True ???
Vladimir101, ты понял с точностью до наоборот.
or вернёт истинное значение, если хотя бы один из аргументов истинен.
and вернёт истинное значение, если оба аргумента истинны.