Помогите с питоном, не работает if else

В питоне не работает конструкция if else, подскажите пожалуйста

colors = ["синий", "зеленый", "желтый"]
x = input("Угадайте цвет:")
while x in colors:
  if x in colors:
    print("Поздравляем, вы угадали!")
    break
  else:
    x = input("Неправильно, попробуйте еще:")

Ответы (3 шт):

Автор решения: MBo

Эта конструкция в питоне, конечно, работает. А ошиблись вы в логике, написав условие while. Вероятно, должно быть while True:

→ Ссылка
Автор решения: Vadim Tukaev

Разумѣется, ошибка въ Python! Языкъ существуетъ болѣе тридцати лѣтъ, и всё это время никто не замѣчалъ ошибки въ одной изъ базовыхъ конструкцій языка. Какъ хорошо, что нашёлся человѣкъ, который открылъ нам всѣмъ глаза! Опозоренный Гвидо ванъ Россумъ тихо плачетъ въ углу. Крупныя, как крыжовникъ, слёзы скатываются въ его сѣдую бороду.

Кстати, а зачѣмъ здѣсь вообще if-else? Я бы обошёлся безъ else, и даже безъ if.

c = "синій зелёный жёлтый".split()
s = "Угадайте цвѣтъ: "
while input(s) not in c:
    s = "Неправильно, попробуйте ещё: "
print("Поздравляемъ, Вы угадали!")

На будущее очень рекомендую прочитать эту статью — https://97-things-every-x-should-know.gitbooks.io/97-things-every-programmer-should-know/content/ru/thing_61/

→ Ссылка
Автор решения: Utsiye

Пиши бесконечный цикл while True, то есть:

while True:
    if x in colors:
        print("Угадали!")
    else:
        print("Не угадали, пробуйте ещё")
        x=input()
→ Ссылка