@Zero_00

SyntaxError:Invalid Syntax?

Вообще не нашел ошибки, но ошибка есть.
a = input("Введите первый основной цвет, Красный/Синий/Желтый: ")
b = input("Введите второй основной цвет, Красный/Синий/Желтый: ")
if a and b == "Красный" or "красный":
    print("Ваш цвет: Красный.")
    
if a and b == "Синий" or "синий":
    print("Ваш цвет: Синий.")
    
if a and b == "Желтый" or "желтый":
    print("Ваш цвет: Желтый.")
    
if a == "Красный" or "красный" b == "Синий" or "синий" or a == "Синий" or "синий" b == "Красный" or "красный":
    print("Ваш вторичный цвет: Фиолетовый.")
    
if a == "Красный" or "красный" b == "Желтый" or "желтый" or a == "Желтый" or "желтый" b == "Красный" or "красный":
    print("Ваш вторичный цвет: Оранжевый.")
    
if a == "Синий" or "синий" b == "Желтый" or "желтый" or a == "Желтый" or "желтый" b == "Синий" or "синий":
    print("Ваш вторичный цвет: Зеленый.")
    
else:
    print("Ошибка. Введите основные цвета!")
  • Вопрос задан
  • 95 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Ну, для начала стоит прочитать какие нибудь материалы по if-else, да и вообще про основы.

Так сравнения не делаются
if a and b == "Красный" or "красный":

Должно быть
if a == "Красный" or b == "красный":

Ошибка тут потому что нет нормального разделения между переменными, из-за неправильного сравнений из примера выше, ну и в целом непонятна логика
if a == "Красный" or "красный" b == "Синий" or "синий" or a == "Синий" or "синий" b == "Красный" or "красный":


Не сравнивайте текст разного регистра, если человек текст заборчиком напишет, не будете же на каждый случай новое слово писать с другим рЕгИсТрОм. Приводите все данные к одному виду, например в нижний регистр:
a = input("Введите первый основной цвет, Красный/Синий/Желтый: ").lower()
b = input("Введите второй основной цвет, Красный/Синий/Желтый: ").lower()

Тогда и сравнивать не придется разные виды написания, текст будет всегда в нижнем.

Для подобного смешивания должно быть так:
if a == "красный" and b == "синий" or a == "синий" and b == "красный":
    print("Ваш вторичный цвет: Фиолетовый.")


Можно расставить скобки, ни на что не повлияет, просто визуально понятно будет что происходит.
if (a == "красный" and b == "синий") or (a == "синий" and b == "красный"):


Можно сказать, что фиолетовый получается, если
(a = красный И b = синий) ИЛИ ЕСЛИ (a = синий И b = красный)

и читается в принципе нормально, сразу понятно что проиходит. Если в подобный вид привести изначальный код, то будет
if a == "Красный" or "красный" b == "Синий" or "синий" or a == "Синий" or "синий" b == "Красный" or "красный":

a = Красный ИЛИ красный b = Синий ИЛИ синий ИЛИ a = Синий ИЛИ синий b = Красный ИЛИ красный

Ничего не понятно даже человеку, компьютер так вообще жалко

Исправляйте, изучайте
https://pythontutor.ru/lessons/ifelse/
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы