Как в python с помощью условного оператора сделать программу, которая понимала бы русский и английский вариант
В программе определена функция, рисующая пирамиду, принимающая на вход три параметра - цвета каждой из ступеней фигуры. Как сделать так, чтобы программа понимала русский и английский вариант следующих цветов: красный (red), синий (blue), зеленый (green), желтый (yellow) с помощью логического оператора or?
когда пользователь вводит к примеру "red" - программа работает как нужно. Но как мне сделать так, чтобы слово "красный" так же как и "red" передавалось в функцию,
from turtle import*
a = input("Цвет первой полосы")
b = input("Цвет второй полосы")
c = input("Цвет третьей полосы")
def pyramid(c1, c2, c3):
color(c1)
width(50)
penup()
goto(-100, -100)
pendown()
forward(200)
penup()
goto(60, -50)
pendown()
left(180)
color(c2)
forward(120)
color(c3)
penup()
goto(-30, 0)
pendown()
left(180)
forward(60)
pyramid(a,b,c)
exitonclick()
Ответы (5 шт):
можно так
color_red=["red","красный"]
input_text = input('Введите ваш текст: ')
if input_text in color_red:
c = "red"
else:
print(False)
еще можно строкой
input_text = input('Введите ваш текст: ')
color_red_1="red красный"
if input_text in color_red_1.split():
print(True)
else:
print(False)
как предложили в комментариях
input_text = input('Введите ваш текст: ')
if input_text == 'red' or input_text =='красный':
print(True)
else:
print(False)
UPD для передачи в функцию
input_text = input('Введите ваш текст: ')
input_text1 = input('Введите ваш текст: ')
#создаем словарь всех нужных цветов
colors = {
'red': 'красный red',
'green': 'зеленый green',
}
#получаем введенный цвет
def color(input_text):
for (key, value) in colors.items():
for a in value.split():
if a == input_text:
return key
#передаем его в параметр для использования в дальнейших функциях
color1 = color(input_text)
color2 = color(input_text1)
print(color1,color2)
вы реализуете словарь например.
colors = {
'red': 'красный',
'green': 'зеленый',
'blue': 'голубой',
'black': 'черный',
}
а дальше, используя ищете среди key
color='green'
for (key, value) in colors.items():
if key == color:print(value)
Большое спасибо за помощь! Решил своими же усилиями. Не ругайтесь за длинный код
from turtle import*
a = input("Цвет первой полосы")
if a == "red" or a == "красный":
a = "red"
elif a == "blue" or a == "синий":
a = "blue"
elif a == "green" or a == "зеленый":
a = "green"
else:
if a == "yellow" or a == "желтый":
a = "yellow"
b = input("Цвет второй полосы")
if b == "red" or b == "красный":
b = "red"
elif b == "blue" or b == "синий":
b = "blue"
elif b == "green" or b == "зеленый":
b = "green"
else:
if b == "yellow" or b == "желтый":
b = "yellow"
c = input("Цвет третьей полосы")
if c == "red" or c == "красный":
c = "red"
elif c == "blue" or c == "синий":
c = "blue"
elif c == "green" or c == "зеленый":
c = "green"
else:
if c == "yellow" or c == "желтый":
c = "yellow"
def pyramid1(c1):
color(c1)
width(50)
penup()
goto(-100, -100)
pendown()
forward(200)
penup()
goto(60, -50)
pendown()
left(180)
def pyramid2(c2):
color(c2)
forward(120)
def pyramid(c3):
color(c3)
penup()
goto(-30, 0)
pendown()
left(180)
forward(60)
pyramid1(a)
pyramid2(b)
pyramid(c)
exitonclick()
Не нужно писать один и тот же код три раза. Для этого есть функции. Функцию пишешь один раз и используешь столько раз, сколько нужно.
from turtle import *
def define_color(): # создаем функцию
# теперь создаем словарь, в котором хранятся цвета
# все хранится в одно месте, изменять и дополнять придется только один раз
colors = {"red": ["red", "красный", "rouge"], # при вводе любого из трех значений цвет будет red
"green": ["green", "зеленый", "vert"],
"blue": ["blue", "синий", "bleu"]}
# запрашиваем цвет у пользователя
# lower() приводит к нижнему регистру на случай если введено "Красный"
user_input = input("Введи название цвета: ").lower()
# ищем среди разных значений к какому цвету относится ввод пользователя
for color in colors:
if user_input in colors[color]:
return color
# а теперь вызываем функцию три раза и получаем три цвета
a = define_color()
b = define_color()
c = define_color()
Код не идеален и не защищает от ошибок типа ввода несуществующего цвета или ввода с ошибкой. В таком случае результат будет None и пирамидка не нарисуется. Можно добавить в конце return "black", чтобы по умолчанию был черный цвет.
for color in colors:
if user_input in colors[color]:
return color
return "black"
Можно завести словарь в котором разные ключи (слова на разных языках) будут указывать на один цвет, например для цвета red будет два ключа: красный и red. И в функцию color передавать не полученное от пользователя слово, а значение из словаря, соответствующее этому слову (ключу).
from turtle import*
a = input("Цвет первой полосы: ")
b = input("Цвет второй полосы: ")
c = input("Цвет третьей полосы: ")
dictionary = {
'red' : 'red',
'красный' : 'red',
'blue' : 'blue',
'синий' : 'blue',
'green' : 'green',
'зелёный' : 'green',
}
def pyramid(c1, c2, c3):
width(50)
penup()
goto(-100, -100)
color(dictionary[c1])
pendown()
forward(200)
penup()
goto(60, -50)
left(180)
color(dictionary[c2])
pendown()
forward(120)
penup()
goto(-30, 0)
left(180)
color(dictionary[c3])
pendown()
forward(60)
pyramid(a, b, c)
exitonclick()