تقنية

bytes.isdigit في بايثون: هل تقبل الرقم العربي بعد UTF-8؟

النص U+0663 ينجح؛ s.isdigit تعطي True.
النص.

isdigit على bytes تقبل أرقام ASCII فقط؛ فحص النص يختلف. [1]

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

لا؛ UTF-8 لا تجعل البايتات أرقام ASCII. [1]

  • isdigit على bytes تقبل أرقام ASCII فقط؛ فحص النص يختلف. [1]
  • يلزم بايت واحد على الأقل، وأن يكون كل بايت ضمن b"0123456789". [1]
  • مثال مؤلف على CPython 3.12.14: s="\u0663"، أي ٣؛ b=s.encode("utf-8"). [1]
  • s.isdigit() تعطي True؛ b.isdigit() تعطي False؛ b تساوي b"\xd9\xa3". [1]
  • تحكم: b"3" تعطي True؛ b"" تعطي False؛ المدخلان لم يتغيرا. [1]

نوع المدخل

isdigit على bytes تقبل أرقام ASCII فقط؛ فحص النص يختلف. [1]

كل البايتات

يلزم بايت واحد على الأقل، وأن يكون كل بايت ضمن b"0123456789". [1]

رقم عربي وترميزه

مثال مؤلف على CPython 3.12.14: s="\u0663"، أي ٣؛ b=s.encode("utf-8"). [1]

s.isdigit() -> True [1]

بايتات UTF-8 للرقم لا تقبل؛ b.isdigit تعطي False.
البايتات.

نتيجة البايتات والتحكم

s.isdigit() تعطي True؛ b.isdigit() تعطي False؛ b تساوي b"\xd9\xa3". [1]

b.isdigit() -> False [1]

تحكم: b"3" تعطي True؛ b"" تعطي False؛ المدخلان لم يتغيرا. [1]

المراجع

  1. Python — bytes.isdigit

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

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