Bu çek ile daha iyisini yapabilirsiniz:
>>> import unicodedata
>>> unicodedata.category("'").startswith("P")
True
>>> unicodedata.category("’").startswith("P")
True
Unicode kategorileri P * özellikle Noktalama İşaretleri içindir :
konektör (Pc), kısa çizgi (Pd), ilk tırnak (Pi), son tırnak (Pf), açık (Ps), kapat (Pe), diğer (Po)
Daha sonra hızlı üyelik kontrolleri için kullanabileceğiniz kapsamlı koleksiyonu hazırlamak için belirli bir anlayış kullanın:
>>> import sys
>>> from unicodedata import category
>>> codepoints = range(sys.maxunicode + 1)
>>> punctuation = {c for i in codepoints if category(c := chr(i)).startswith("P")}
>>> "'" in punctuation
True
>>> "’" in punctuation
True
Buradaki atama ifadesi , eski Python sürümleri için eşdeğer olan Python 3.8+ gerektirir:
chrs = (chr(i) for i in range(sys.maxunicode + 1))
punctuation = set(c for c in chrs if category(c).startswith("P"))
Diğer karakterlerin bazılarının string.punctuation
Unicode kategorisinde olduğunu unutmayın. Symbol . İsterseniz bunları eklemek de kolaydır.