आप इस जाँच से बेहतर कर सकते हैं:
>>> import unicodedata
>>> unicodedata.category("'").startswith("P")
True
>>> unicodedata.category("’").startswith("P")
True
यूनिकोड श्रेणी P * विशेष रूप से विराम चिह्न के लिए हैं :
कनेक्टर (Pc), डैश (Pd), आरंभिक उद्धरण (Pi), अंतिम उद्धरण (Pf), ओपन (Ps), क्लोज़ (Pe), अन्य (Po)
संपूर्ण संग्रह तैयार करने के लिए, जिसे आप बाद में तेज सदस्यता जांच के लिए उपयोग कर सकते हैं, एक सेट समझ का उपयोग करें:
>>> 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
यहां असाइनमेंट एक्सप्रेशन की आवश्यकता पाइथन 3.8+ की है, जो पुराने पाइथन संस्करणों के बराबर है:
chrs = (chr(i) for i in range(sys.maxunicode + 1))
punctuation = set(c for c in chrs if category(c).startswith("P"))
खबरदार कि कुछ अन्य पात्र string.punctuationवास्तव में यूनिकोड श्रेणी के प्रतीक हैं । यदि आप चाहें तो उन लोगों को जोड़ना आसान है।