@Ornitier

Хочу сделать бота, меняющего буквы английской раскладки на русские, что не так?

Пытаюсь сделать бота, который берёт строку из буфера обмена и меняет английские символы на русские, находящиеся на той же строке клавиатуры. Не удаётся сделать цикл, который должен проходить по всей строке и менять символы. Символы он помещает в отдельный список, затем выводя на экран. Подскажите как правильно сделать цикл и как можно уменьшить код, если такое возможно.
import pyautogui, pyperclip, time
import keyboard as k
 
def copy_text():
    pyautogui.hotkey('ctrl', 'c')
    time.sleep(.01)
    return pyperclip.paste()
 
def text_list():
    text = []
    copy = copy_text()
    text.append(copy)
 
    for i in range(len(text)):
        for i in text:
            texttr = []
            if i == 'q' or 'Q':
                i = 'й'
                texttr.append(i)
            elif i == 'w' or 'W':
                i = 'ц'
                texttr.append(i)
            elif i == 'e' or 'E':
                i = 'у'
                texttr.append(i)
            elif i == 'r' or 'R':
                i = 'к'
                texttr.append(i)
            elif i == 't' or 'T':
                i = 'е'
                texttr.append(i)
            elif i == 'y' or 'Y':
                i = 'н'
                texttr.append(i)
            elif i == 'u' or 'U':
                i = 'г'
                texttr.append(i)
            elif i == 'i' or 'I':
                i = 'ш'
                texttr.append(i)
            elif i == 'o' or 'O':
                i = 'щ'
                texttr.append(i)
            elif i == 'p' or 'P':
                i = 'з'
                texttr.append(i)
            elif i == '[' or '{':
                i = 'х'
                texttr.append(i)
            elif i == ']' or '}':
                i = 'ъ'
                texttr.append(i)
            elif i == 'a' or 'A':
                i = 'ф'
                texttr.append(i)
            elif i == 's' or 'S':
                i = 'ы'
                texttr.append(i)
            elif i == 'd' or 'D':
                i = 'в'
                texttr.append(i)
            elif i == 'f' or 'F':
                i = 'а'
                texttr.append(i)
            elif i == 'g' or 'G':
                i = 'п'
                texttr.append(i)
            elif i == 'h' or 'H':
                i = 'р'
                texttr.append(i)
            elif i == 'j' or 'J':
                i == 'о'
                texttr.append(i)
            elif i == 'k' or 'K':
                i = 'л'
                texttr.append(i)
            elif i == 'l' or 'L':
                i = 'д'
                texttr.append(i)
            elif i == ';' or ':':
                i = 'ж'
                texttr.append(i)
            elif i == "'" or '"':
                i = 'э'
                texttr.append(i)
            elif i == "z" or 'Z':
                i = 'я'
                texttr.append(i)
            elif i == "x" or 'X':
                i = 'ч'
                texttr.append(i)
            elif i == "c" or 'C':
                i = 'с'
                texttr.append(i)
            elif i == "v" or 'V':
                i = 'м'
                texttr.append(i)
            elif i == "b" or 'B':
                i = 'и'
                texttr.append(i)
            elif i == "n" or 'n':
                i = 'т'
                texttr.append(i)
            elif i == "m" or 'M':
                i = 'ь'
                texttr.append(i)
            elif i == "," or '<':
                i = 'б'
                texttr.append(i)
            elif i == "." or '>':
                i = 'ю'
                texttr.append(i)
            elif i == "-" or '_':
                i = i
                texttr.append(i)
            else:
                i = i
                texttr.append(i)
            print(texttr)
 
 
 
k.add_hotkey('ctrl+4', copy_text)
k.add_hotkey('ctrl+5', text_list)
 
time.sleep(60)
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
Vindicar
@Vindicar
RTFM!
Открой для себя str.translate().

А вообще вот это:
for i in range(len(text)):
        for i in text:

Просто не имеет смысла, у тебя внутренний цикл будет перебивать переменную i своим значением. Зачем тогда внешний цикл вообще?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
11 мая 2024, в 00:19
1000 руб./за проект
10 мая 2024, в 23:51
30000 руб./за проект
10 мая 2024, в 23:33
2500 руб./за проект