Технологии

Почему срабатывает if в любом случае? - вопрос №5065340

import pyperclip import time import re a = '' while True: clipboard = pyperclip.paste() b = bool(re.match(r'[a-zA-z0-9]', clipboard)) print(b) b = False if clipboard != a and b == True: with open('monitoring.txt', 'a', encoding='UTF=8') as f: f.write(clipboard) f.write('\n') a = clipboard time.sleep(2)

февраль 8, 2023 г.

  • Всего ответов: 1

  • Денис - аватарка

    Денис

    36-й в Психологии

    В данном случае условие b == True не является нужным, так как в строке b = bool(re.match(r'[a-zA-z0-9]', clipboard)) переменная b уже имеет значение типа bool. Проверка b == True эквивалентна просто проверке b.

    Если вы хотите проверять, что clipboard содержит только латинские буквы и цифры, то в регулярном выражении следует указать начало и конец строки (^ и $ соответственно): re.match(r'^[a-zA-Z0-9]+$', clipboard).

    В итоге ваш код может выглядеть так:

    import pyperclip
    import time
    import re

    a = ''
    while True:
        clipboard = pyperclip.paste()
        b = bool(re.match(r'^[a-zA-Z0-9]+$', clipboard))
        print(b)
        if clipboard != a and b:
            with open('monitoring.txt', 'a', encoding='UTF=8') as f:
                f.write(clipboard)
                f.write('\n')
            a = clipboard
        time.sleep(2)

    апрель 9, 2023 г.

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

Python, много разных историй в одной игре.

Вопрос задан анонимно март 14, 2024 г.

Технологии