#python #python-2.7 #while-loop
#python #python-2.7 #цикл while
Вопрос:
Я создаю небольшую функцию, позволяющую игроку выбирать свою фигуру в начале игры в крестики-нолики (выберите X или O), и по какой-то причине у меня возникают проблемы со следующим кодом. Оператор while не работает с оператором OR в нем. Код запускается, когда я удаляю либо shape != «o», либо shape != «x», но с обоими вариантами в цикле while я никогда не выхожу из цикла while, и меня постоянно спрашивают, какой формой я хочу быть.
def selectShape():
shape = ""
while shape != "o" or shape != "x":
shape = raw_input("What shape do you want to be? x or o? ")
if shape == "x":
print "The computer is player o"
else:
print "The computer is player x"
Комментарии:
1.
shape != "o" or shape != "x"
это тавтология; нет строки, которая была бы одновременно"o"
и «x». You meant "and" there. (Or, more idiomatically,
, а форма не в [«o», «x»]`)
Ответ №1:
Вас постоянно спрашивают, потому что одно всегда будет истинным.
Если вы выберете X, то: shape != «o»
Если вы выберете O, то: shape!= «x»
Вероятно, вам следует использовать AND вместо OR.
while shape != «o» И shape != «x»:
Таким образом, если ни то, ни другое не верно, он продолжит выдавать запрос. Оно прервется и продолжится, если один из них равен X или O.