حقيقة النص

يتم تمثيل النص في بايثون بالنوع str (من String وتعني خيط) وهو سلسلة رموز (وهي التي نضعها بين علامتي التنصيص "") لكن الذي يحصل في الواقع أن مفسِّر لغة بايثون يترجمها إلى أرقام تقابلها في جدول الترميز العالمي Unicode لتكون قيمة المتغيِّر في الحقيقة.

يحوي هذا الجدول رموز لجميع اللغات البشرية ابتداءً بالإنجليزية واللاتينية، ثم اللغات الأخرى كالعربية والعبرية والصينية واليابانية والكورية وبقية لغات العالم. بالإضافة إلى علامات الترقيم الخاصة بكل لغة، ورموز الأرقام.
وفوق ذلك الرسوم التي تجدها في المحادثات ومواقع التواصل مثل: 🤗💡🔍📐 وما أشبهها.

لاحظ في النص البرمجي أن الدالة chr(i) تحوِّل الرقم i إلى رمز Unicode المقابل له.
ونحن نستعملها في حلقة لكر الأرقام من 32 إلى 127 ونقسمها لمجموعات بحيث يكون كل سطر فيه مجموعة من الحروف:

ولو أردت العكس: أن تعرف ما هو الرقم للرمز، فإنك تستعمل دالة ord(c) على النحو التالي:

لذلك فإن المقارنة بين السلاسل النصيَّة هي في الحقيقة مقارنة بأرقامها.
فالحرف الصغير والحرف الكبير رقمان مختلفان:

والحاصل في الواقع هو أن بايثون تقارنها بعد التحويل إلى الأرقام:

لذلك لا تعجب من أن الحرف الكبير أصغر من الصغير بهذا الاعتبار؛
وذلك: لأنه يأتي قبله في جدول الترميز العالمي، فرقمه أقل من رقم الصغير:

والسبب في ابتدائنا من 32 هو أن الأرقام التي قبل ذلك تسىمى أحرف تحكم (Control Characters). بل إن رقم 32 نفسه هو حرف تحكُّم وظيفته تحريك رأس الكتابة بمقدار خطوة واحدة لتكوين مسافة.

وهو من أحرف الفراغات (Whitespace Characters)، ويهمنا منها:

  • المسافة (Space): " " ويعني الانتقال بمقدار خطوة واحدة لإحداث فراغ بين الكلمات
  • السطر (Line Feed): "\n" ويعني الانتقال للسطر التالي
  • البادئة (Tab): "\t" وهي التي تكون في بداية الفقرة، أو التي تكون بين الأعمدة في تنسيق الجداو. وقد نستعملها في كتابة بايثون للمحاذاة

ولاحظ أن الشرطة مع الحرف، يفسران كرقم واحد، وإنما وُضِعَت لها رموز لكثرة استعمالها، ويمكننا معرفة الأرقام الدالة على كل من هذه الرموز هكذا:

ونحن في كل مرة نستعمل إجراء الطباعة: print() فالقيمة الافتراضيَّة للمعطى end='\n'، وهذا يعني أن الطباعة يتبعها علامة الانتقال لسطر جديد.
فإذا أردت أن تكون الطباعة بلا سطرٍ جديد، بل تكون مثلاً، مسافة، فإننا نعيِّن قيمة المعطى عند الاستدعاء:

وبهذا تبيَّن لك كيف كانت جملة الكر تطبع الحروف بالنسق الذي أردناه لها.