Найти - Пользователи
Полная версия: Логический оператор "or"
Начало » Python для новичков » Логический оператор "or"
1 2
FILLIPO
Здравствуйте!


Есть два способа написать “считалку”, но один почему-то не работает:
Первый (нормальный):
z=input("Input any integer: ")
if z==0 or z==1:
print "Good guess!"
else:
print "You missed!"
Второй (очень оптимистичный, поскольку всегда “Good guess!”)
z=input("Input any integer: ")
if z==0 or 1:
print "Good guess!"
else:
print "You missed!"
Вопрос такой: а почему так? почему второй вариант даже не сравнивает вводимое с 0 и 1?
Александр Кошелев
FILLIPO
Вопрос такой: а почему так? почему второй вариант даже не сравнивает вводимое с 0 и 1?
Потому что такие правила языка.

Hint: расставьте скобки в этом выражении:-)
FILLIPO
ААА! Совсем плохо:

теперь, если со скобками, совсем анархия:
z=input("Input any integer: ")
if z == (1 or 0):
print "Good guess!"
else:
print "You missed!"
raw_input()
Принципиально: 1-Good guess!, 0 и все остальное-You missed!

Или скобки не там?
Александр Кошелев
FILLIPO
Или скобки не там?
Не там. Расставьте их по приоритету операторов.
FILLIPO
Эх, простите, но что-то сегодня откровенно ничего не понимаю. Неукротимый оператор “or”.

Если:
z=input("Input any integer: ")
if z == 0 or 1:
print "Good guess!"
else:
print "You missed!"
raw_input()
в этом примере все “Good guessed”
а если:
z=input("Input any integer: ")
if z == 1 or 0:
print "Good guess!"
else:
print "You missed!"
raw_input()
то “Good guessed” только при 1

покажите, пожалуйста, где скобки ставить! Ведь операторов то здесь всего три: if, or и else. Где же еще поставить, если не (1 or 0)?
sypper-pit
питон выполняет всё правильно …
z=input("Input any integer: ")
if z == (1 or 0):
print "Good guess!"
elif:
print "You missed!"
else:
print "exit"
exit()
raw_input()
наверное так
FILLIPO
Большое спасибо. :)
но, постойте, код методом copy-paste в блокнот и программа захлопывается=ошибка. Что-то опять не так.

Не понятно, зачем
else:
print "exit"
exit()
это же никак не влияет на суть: не получается правильно описать два возможных значения. А остальная часть кода
z=input("Input any integer: ")
if z == (1 or 0):
print "Good guess!"
else:
print "You missed!"
уже была. Не работает(

Так, все-таки, вопрос к тем, кто понял Daevaorn-a, где нужно поставить скобки?
Cleric
Может лучше всё таки так?
z=input("Input any integer: ")
if z in (1, 0):
print "Good guess!"
else:
print "You missed!"
Андрей Светлов
Ну, чудаки-человеки.
>>> 1 or 0
1
Т.е. z == (1 or 0) ВСЕГДА эквивалетно z == 1
Кстати, можно написать z in (0, 1) если уж сильно хочется.
FILLIPO
Всем большое спасибо!
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB