تقنية

isalpha في بايثون: لماذا ترفض الباء مع الفتحة؟

الباء U+0628 وحدها تقبل؛ isalpha تعطي True.
باء بلا فتحة.

وجود التشكيل قد يجعل isalpha تعطي False لنص عربي. [1]

الخلاصة السريعة

الباء تقبل؛ إضافة الفتحة تجعل هذا المثال مرفوضًا. [1]

  • وجود التشكيل قد يجعل isalpha تعطي False لنص عربي. [1]
  • يشترط الفحص نصًا غير فارغ وكل محارفه من فئات الحروف في Unicode. [1]
  • مثال مؤلف على CPython 3.12.14: a="\u0628"؛ b="\u0628\u064e"؛ باء وباء مع فتحة. [1]
  • a.isalpha() تعطي True؛ b.isalpha() تعطي False؛ المدخلان لم يتغيرا. [1]
  • بعد import unicodedata، تعطي unicodedata.category فئة الباء Lo والفتحة Mn؛ الفتحة خارج فئات الحروف المقبولة. [1] [2]

أثر التشكيل

وجود التشكيل قد يجعل isalpha تعطي False لنص عربي. [1]

كل المحارف

يشترط الفحص نصًا غير فارغ وكل محارفه من فئات الحروف في Unicode. [1]

باء وباء مع فتحة

مثال مؤلف على CPython 3.12.14: a="\u0628"؛ b="\u0628\u064e"؛ باء وباء مع فتحة. [1]

a.isalpha() -> True [1]

الباء مع الفتحة ترفض؛ فئة الفتحة Mn.
باء مع فتحة.

النتيجة وسببها

a.isalpha() تعطي True؛ b.isalpha() تعطي False؛ المدخلان لم يتغيرا. [1]

b.isalpha() -> False [1]

بعد import unicodedata، تعطي unicodedata.category فئة الباء Lo والفتحة Mn؛ الفتحة خارج فئات الحروف المقبولة. [1] [2]

المراجع

  1. Python — isalpha
  2. Python — Unicode category

للتوسع: لغات البرمجة.

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.