Форум сайта python.su
Пишу y пишу r и всё равно продолжается повторения запроса, почему так?
z = None while z != "y" or z != "r": z = input("пока z или r: ") print("T")
Отредактировано Karalov86 (Янв. 7, 2017 14:32:32)
Офлайн
Потому что там or, а надо and.
И вообще
while z not in set('yr'):
Отредактировано py.user.next (Янв. 7, 2017 14:58:33)
Офлайн
py.user.next
Потому что там or, а надо and.И вообще
while "y" == "n" or "z" != "x": print("mars")
z = "a" while "y" == "n" or z != "x": print("mars")
Офлайн
Где и что Вы читали по логическим операторам в python?
Офлайн
Karalov86Не нет, а да. Несмотря на бессмысленность проверки “y” == “n”, такой код должен печатать “mars”. Он и печатает.
А такой нет
z = "a" while "y" == "n" or z != "x": print("mars")
Karalov86Нет, почему же. Оператор OR работает всегда, и с переменными тоже.
OR не работает если сравнения проводятся с переменными?
Отредактировано old_monty (Янв. 7, 2017 16:07:19)
Офлайн
Karalov86
Вот например такой код печатает - “mars”while "y" == "n" or "z" != "x":
print("mars")
>>> "y" == "n" False >>> >>> "z" != "x" True >>> >>> "y" == "n" or "z" != "x" True >>> >>> "y" == "n" and "z" != "x" False >>>
>>> False or True True >>>
>>> n = True >>> while n: ... print('Hello') ... n = False ... Hello >>>
Отредактировано py.user.next (Янв. 8, 2017 03:18:44)
Офлайн