Не выводит на экран "ошибка цвета",в случае неверных значений пременных a и b.

Rud1095

Новичок
Пользователь
Апр 23, 2022
7
0
1
Моя операционная система:Windows
Версия Python:3.8
Почему не выводит на экран "ошибка цвета" в случае неверных значений а и b?




Python:
a = str(input())
b = str(input())
if a == "красный" or "синий" or "желтый" and b == "красный" or "синий" or "желтый":
    if a == "красный" and b == "красный":
        print("красный")
    elif a == "желтый" and b == "желтый":
        print("желтый")
    elif a == "синий" and b == "синий":
        print("синий")
    elif a == "красный" and b == "синий" or a == "синий" and b == "красный":
        print("фиолетовый")
    elif a == "красный" and b == "желтый" or a == "желтый" and b == "красный":
        print("оранжевый")
    elif a == "синий" and b == "желтый" or a == "желтый" and b == "синий":
        print("зеленый")
else:
    print("ошибка цвета")
 

Вложения

  • 213213123213.jpg
    213213123213.jpg
    197 КБ · Просмотры: 1

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 599
464
83
условия не так работают, в вашем случае
if a == "красный" or "синий" or "желтый" and b == "красный" or "синий" or "желтый":
"синий" "желтый" будут всегда истина, так как не пустая строка всегда истина
так же нужно все или объединить в группы
и input не нужно оборачивать в str, он и так возвращает строку

можно так
Python:
a = input()
b = input()
if (a == "красный" or a == "синий" or a == "желтый") and (b == "красный" or b == "синий" or b == "желтый"):
    if a == "красный" and b == "красный":
        print("красный")
    elif a == "желтый" and b == "желтый":
        print("желтый")
    elif a == "синий" and b == "синий":
        print("синий")
    elif a == "красный" and b == "синий" or a == "синий" and b == "красный":
        print("фиолетовый")
    elif a == "красный" and b == "желтый" or a == "желтый" and b == "красный":
        print("оранжевый")
    elif a == "синий" and b == "желтый" or a == "желтый" and b == "синий":
        print("зеленый")
else:
    print("ошибка цвета")
 

Форум IT Специалистов