السلاسل النصية في بايثون 3
نشر في يوم Fri 11 June 2021 في قسم \ اقسام سلسلة مبادئ البايثون
تجزئة النصوص
البايثون يتيح لنا استخراج جزء من النص باستخدام التركيب اللغوي للفهرسة مع التعديل، وهذة العملية تسمى بتجزئة او تقطيع النص. اذا اضفنا [m:n]
على النص فسيقوم المفسر باستخراج الجزء ما بين m
و n
والاخيرة لا تكون من ضمن النص المستخرج بمعنى m
مضمنة و n
ليست مضمنة.
مثال:
>>> s = "python"
>>> s[2:5]
'tho'
واذا قمنا بحذف المؤشر الاول [n:]
فسيقوم المفسر بالتجزئة من بداية النص حتى يصل الى الموشر الثاني.
مثال:
>>> s = "python"
>>> s[:5]
'pytho'
والعكس صحيح اذا قمنا بحذف المؤشر الثاني مع اعطاء عدد للمؤشر الاول فسيقوم المفسر بالتجزئة من المؤشر الاول الى نهاية النص.
مثال:
>>> s = "python"
>>> s[2:]
'thon'
واذا قمنا بحذف كلا المؤشرين فسوف يرجع المفسر كامل النص.
مثال:
>>> s = "python"
>>> s[:]
'python'
كما يمكننا ايضاً استخدام الاعداد السالبة في عملية التجزئة مثلما استخدمناها في الفهرسة.
تباعا توضيح و مثال لاستخدامها في استخراج tho
من !python
باستخدام الاعداد السالبة.
المفتاح - | -1 | -2 | -3 | -4 | -5 | -6 | -7 |
الحرف | ! | n | o | h | t | y | p |
المفتاح + | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
>>> s = "python!"
>>> s[2:5]
'tho'
>>> s[-5:-2]
'tho'
البايثون ايضا تتيح لنا اضافة مؤشر ثالث الى التركيب اللغوي للتجزئة وهو معني بالخطوة او القفزة، بمعنى اذا قمت بتقطيع النص بـ [m:n:p]
فسيقوم المفسر بما قام به سابقا الا انه سيقفز بمقدار العدد p
.
مثال:
>>> s = "python!"
>>> s[::2]
'pto!'
هنا الجدول لتوضيح العملية:
المفتاح - | -1 | -2 | -3 | -4 | -5 | -6 | -7 |
الحرف | ! | n | o | h | t | y | p |
المفتاح + | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
الاحرف الكبيرة هي التي قام المفسر بارجاعها والاحرف العادية هي التي قام المفسر بقفزها.
للتوضيح اكثر لنأخذ هذا المثال:
>>> s = "1234512345123451234512345"
>>> s[::5]
'11111'
هنا قمنا بارجاع النص كاملا لكن مع قفزة بمقدار 5 بمعنى سيرجع اول حرف ومن ثم يقفز خمسة مسافات ويقوم بارجاع الحرف الذي يكون في ذلك المكان.
ايضا يمكننا وضع الاعداد السالبة في مكان مؤشر القفزة لكن البايثون سيقوم بها بشكل عكسي.
لنأخذ مثالنا الاول ونقوم بتغيير اشارة عدد القفزة:
>>> s = "python!"
>>> s[::-2]
'!otp'
وتستخدم هذة الطريقة كثيرا في بايثون لعكس النص :)
هكذا:
>>> s = "python!"
>>> s[::-1]
'!nohtyp'
انتهى!