Определение раскладки
Недавно начал учить Python. В голову пришла идея сделать простую программу, которая будет менять символы с английской раскладки на русскую. Но у меня почему то не получается.
Помогите с решением задачи.
Вот мой код:
a = input()
for i in a:
if i == "q":
i = "й"
continue
elif i == "w":
i = "ц"
continue
print(i)
Ответы (1 шт):
Автор решения: E1mir
→ Ссылка
Задача ясна и проблема тоже. Дело в том что, вы пытаетесь менять саму строку, а этого делать нельзя, и поэтому у вас ничего не получается сделать. Для этого можно использовать переменные
text = input()
translated_text = ''
for letter in text:
tranlated = ''
if letter == "q":
translated = "й"
continue
elif letter == "w":
translated = "ц"
continue
elif letter == 'a':
translated = 'ф'
continue
## итд.
translated_text += translated
print(translated_text)
Но еще можно написать так чтобы, не прописывать if/else:
en = "qwertyuiop[]asdfghjkl;'zxcvbnm,."
rus = "йцукенгшщзхъфывапролджэячсмитьбю"
text = input()
translated_text = ''
for l in text:
try:
translated_index = en.index(l)
translated_word = rus[translated_index]
except:
translated_word = l
translated_text += translated_word
print(translated_text)
Также с использованием встроенной функции maketrans
en = "qwertyuiop[]asdfghjkl;'zxcvbnm,."
rus = "йцукенгшщзхъфывапролджэячсмитьбю"
text = input()
translated_text = text.translate(str.maketrans(en, rus))
print(translated_text)