Почему-то не выводит полный список а только 1 - й элемент, или выводит вовсе ничего

YaAndrey

Новичок
Пользователь
Мар 20, 2021
19
0
1
1. Windows
2. Python 3.8.7
3.
4. Делаю программу которая должна заменять английские буквы в строке на украинские. Но не знаю как это сделать без написания кучи if.
Тот код который я написал выводит только когда в строке буквы: "a", "d", "f", "e", "b", "c'. И выводит только 1-й элемент списка. Помогите пожалуйста.Вот код и скрин примера роботы программы:
Python:
user_str = input('Введите текст который нужно исправить:')
str_len = len(user_str)
list = list(user_str)
a = -1
a2= 0
list2 = []

En_ABC = ['a', 'b', 'c', 'd', 'e', 'f', 'g','h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p','q', 'r', 's', 't', 'u', 'w', 'v', 'x', 'y', 'z',  '[', ']', ',', '.', '/', ' ']
en_len = len(En_ABC)

slv_ABC =  {'a':"ф",
            'b':'и',
            'c':'с',
            'd':'в',
            'e':'у',
            'f':'а',
            'g':'п',
            'h':'р',
            'i':'ш',
            'j':'о',
            'k':'л',
            'l':'д',
            'm':'ь',
            'n':'т',
            'o':'щ',
            'p':'з',
            'q':'й',
            'r':'к',
            's':'і',
            't':'е',
            'u':'г',
            'w':'ц',
            'v':'м',
            'x':'ч',
            'y':'н',
            'z':'я',
            '[':'х',
            ']':'ї',
            ";":'ж',
            "'":'є',
            ',':'б',
            '.':'ю',
            '/':'.',
            ' ':' '}


while True:
   a = a+1
   if a >= en_len:
      a2 = a2 + 1 
   if list[a2] == En_ABC[a]:
      list2.append(slv_ABC[En_ABC[a]])

   if a == str_len-1:
      break

text = "".join(map(str, list2))
print(text)
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
973
220
43
21
Москва
Все на много проще, есть словарь с заменами, проходимся по его ключам и заменяем в введенном тексте значения по ключам:

Python:
text = input('Введите текст который нужно исправить: ')

slv_ABC =  {'a':'ф',
            'b':'и',
            'c':'с',
            'd':'в',
            'e':'у',
            'f':'а',
            'g':'п',
            'h':'р',
            'i':'ш',
            'j':'о',
            'k':'л',
            'l':'д',
            'm':'ь',
            'n':'т',
            'o':'щ',
            'p':'з',
            'q':'й',
            'r':'к',
            's':'і',
            't':'е',
            'u':'г',
            'w':'ц',
            'v':'м',
            'x':'ч',
            'y':'н',
            'z':'я',
            '[':'х',
            ']':'ї',
            ';':'ж',
            "'":'є',
            ',':'б',
            '.':'ю',
            '/':'.',
            ' ':' '}


for i in slv_ABC.keys():
    text = text.replace(i, slv_ABC[i])
    
print(text)
 
  • Мне нравится
Реакции: YaAndrey

YaAndrey

Новичок
Пользователь
Мар 20, 2021
19
0
1
Спасибо
 

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