Почему срабатывает 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)
В данном случае условие 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)
Добрый день. Меня заинтересовал ваш ответ "В данном случае условие b == True не является нужным, так как в строке b = bool(re.match(r'[a-zA-z0-..." на вопрос http://www.liveexpert.org/topic/view/5065340-pochemu-srabativaet-if-sluchae. Можно с вами обсудить этот ответ?