Programming Basics SQL HTML CSS JavaScript Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Learn Typing

بايثونالتعامل مع النصوص

  • مفهوم النصوص
  • طريقة تعريف نص
  • دمج النصوص
  • الوصول لأحرف النص
  • تجزيء النص في بايثون بواسطة العامل []
  • الرموز التي من خلالها نعرف نهاية السطر
  • الدوال الجاهزة في الكلاس str
  • العوامل التي تستخدم للتعامل مع النصوص

مفهوم النصوص

النص عبارة عن سلسلة من الأحرف ليس لها حجم محدد فقد يتألف من حرف واحد، كلمة، جملة أو فقرة كبيرة جداً.

في بايثون النص يندرج تحت النوع str.

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

النوع str يعتمد على الترميز UTF-8 و هذا يعني أنك لن تواجه أي مشكلة عند التعامل مع نصوص عربية، إنجليزية، فرنسية إلخ..

طريقة تعريف نص

لتعريف نص في بايثون يمكنك استخدام رمز التنصيص الفردي ' ' أو الزوجي " " و لا يوجد أي فارق بينهما.

  • إذا كان النص يتألف من سطر واحد يمكن استخدام الرمز ' ' أو الرمز " ".
  • إذا كان النص يتألف من عدة أسطر يمكن استخدام الرمز ''' ''' أو الرمز """ """.

المتغيرات النصية في بايثون تعتبر Immutable مما يعني أنه عند تعريف متغير و تخزين نص فيه فإنه سيتم حجز مكان له في الذاكرة مهما كان حجمه، و لكن إذا تم وضع قيمة جديدة في المتغير فإنه سيتم حجز مكان جديد لها في الذاكرة و وضع القيمة الجديدة فيه لأنه لا يمكن تعديل نفس القيمة في نفس المكان في الذاكرة.

بالنسبة لمساحة الذاكرة التي تم التخلي عنها فإنه سيتم حذفها بشكل تلقائي بعد مدة من قبل جامع القمامة ( Garbage Collector ).


في المثال التالي قمنا بتعريف ثلاث متغيرات تحتوي على قيم نصية.
لاحظ أننا قمنا بتعريف كل متغيير بواسطة رمز مختلف.

المثال الأول

Test.py
# هنا قمنا بتعريف ثلاث متغيرات تحتوي على قيم نصية
name = 'Mhamad'
job = "Programmer"
message = '''This string that will span across multiple lines. No need to use newline characters for the next lines.
The end of lines within this string is counted as a newline when printed.'''
# هنا قمنا بعرض قيم المتغيرات النصية بأسلوب مرتب
print('Name: ', name)
print('Job: ', job)
print('Message: ', message)
# هنا قمنا بتعريف ثلاث متغيرات تحتوي على قيم نصية name = 'Mhamad' job = "Programmer" message = '''This string that will span across multiple lines. No need to use newline characters for the next lines. The end of lines within this string is counted as a newline when printed.''' # هنا قمنا بعرض قيم المتغيرات النصية بأسلوب مرتب print('Name: ', name) print('Job: ', job) print('Message: ', message)

النتيجة

Name: Mhamad
Job: Programmer
Message: This string that will span across multiple lines. No need to use newline characters for the next lines.
The end of lines within this string is counted as a newline when printed.

في المثال التالي قمنا بتعريف نص يحتوي على نفس الرموز التي تستخدم لتعريف النصوص.

المثال الثاني

Test.py
# يحتوي على قيمة نصية text هنا قمنا بتعريف متغير إسمه
text = """In this line we print 'single quotations'
In this line we print "double quotations" """
# text هنا قمنا بعرض قيمة المتغير
print(text)
# يحتوي على قيمة نصية text هنا قمنا بتعريف متغير إسمه text = """In this line we print 'single quotations' In this line we print "double quotations" """ # text هنا قمنا بعرض قيمة المتغير print(text)

النتيجة

In this line we print 'single quotations'
In this line we print "double quotations"

دمج النصوص

الدمج ( Concatenation ) معناه وضع سلسلة من الأشياء بجانب بعضها لتصبح كنص واحد.
تستطيع دمج نص مع نص و تستطيع دمج نص مع عدد.

عندما تقوم بإنشاء حساب جديد في أي موقع إلكتروني مثل هرمش، تلاحظ أنه يطلب منك أن تدخل إسمك ( First Name ) و يليه إسم عائلتك ( Last Name ). بعدها تلاحظ أنه يعرض إسمك الكامل ( Full Name ) مما يعني أنه دمج إسمك و إسم عائلتك مع بعض.


طرق دمج النصوص

يمكنك تطبيق الدمج في بايثون بثلاث طرق:

  • الدمج التلقائي، إذا كان المراد دمج قيمتين نصيتين.
  • إستخدام العامل + مما يتيح دمج نص مع نص أو نص مع عدد.
  • إستخدام الدالة join() و التي تتيح دمج سلسلة من النصوص مع بعضها.

الدالة join() شرحنا طريقة استخدامها بشكل مفصل لاحقاً في هذا الدرس.


في المثال التالي قمنا بتعريف المتغير first_name لنضع فيه الإسم، و المتغير last_name لنضع فيه إسم العائلة، و المتغير full_name لنضع فيه الإسم و إسم العائلة.

المثال الأول

Test.py
# و وضعنا فيه نص يمثل الإسم first_name هنا قمنا بإنشاء المتغير
first_name = 'Mhamad'
# و وضعنا فيه نص يمثل إسم العائلة last_name هنا قمنا بإنشاء المتغير
last_name = 'Harmush'
# و أضفنا بينهما مسافة فارغة last_name و إسم العائلة الموجود في المتغير first_name و وضعنا فيه الإسم الموجود في المتغير full_name هنا قمنا بإنشاء المتغير
full_name = first_name + ' ' + last_name
# و يالتالي سيتم عرض الإسم الكامل الذي قمنا بدمجه و وضعه فيه full_name هنا عرضنا قيمة المتغير
print(full_name)
# و وضعنا فيه نص يمثل الإسم first_name هنا قمنا بإنشاء المتغير first_name = 'Mhamad' # و وضعنا فيه نص يمثل إسم العائلة last_name هنا قمنا بإنشاء المتغير last_name = 'Harmush' # و أضفنا بينهما مسافة فارغة last_name و إسم العائلة الموجود في المتغير first_name و وضعنا فيه الإسم الموجود في المتغير full_name هنا قمنا بإنشاء المتغير full_name = first_name + ' ' + last_name # و يالتالي سيتم عرض الإسم الكامل الذي قمنا بدمجه و وضعه فيه full_name هنا عرضنا قيمة المتغير print(full_name)

النتيجة

Mhamad Harmush

في حال وضعت قيمتين نصيّتين بجانب بعضهما و وضعت بينهما مسافة فارغة أو أكثر فإن مترجم بايثون سيقوم بدمجهمها كنص واحد بشكل تلقائي كما يلي.

المثال الثاني

Test.py
s = 'Mhamad' ' Harmush' # s هنا قمنا بوضع قيمتين نصيّتين بجانب بعضهما و قمنا بتخزينهما في المتغير
print(s) # لنتأكد من أنه قد تم دمج النصين بشكل صحيح s3 هنا عرضنا قيمة المتغير
s = 'Mhamad' ' Harmush' # s هنا قمنا بوضع قيمتين نصيّتين بجانب بعضهما و قمنا بتخزينهما في المتغير print(s) # لنتأكد من أنه قد تم دمج النصين بشكل صحيح s3 هنا عرضنا قيمة المتغير

النتيجة

Mhamad Harmush

الوصول لأحرف النص

لنفترض أننا قمنا بتعريف متغير إسمه s و قيمته النص 'welcome to harmash.com'

s = 'welcome to harmash.com'
s = 'welcome to harmash.com'

سيتم تخزين نص المتغير s في الذاكرة حرفاً حرفاً و بالترتيب كما في هذه الصورة التالية.

كيف يتخزن النص في الذاكرة


الوصول لأحرف النص من اليسار إلى اليمين

في حال أردت المرور على أحرف النص من الأول إلى الآخر (أي من اليسار إلى اليمين) فعليك استخدام أرقام أكبر أو تساوي 0 و هكذا سيتم إعتبار أن الخانات قد تم ترقيمها إبتداءاً من الرقم 0 كالتالي.

ترقيم خانات النص من الأول إلى الآخر - Forward Indexing

معلومة: ترقيم الخانات من الأول إلى الآخر يسمى Forward Indexing.

في المثال التالي سنقوم بطباعة أول 7 أحرف من الجهة اليسرى في النص و بالتالي سنحصل على الكلمة welcome.

مثال

Test.py
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه
s = 'welcome to harmash.com'
# و بدأنا من اليسار s هنا قمنا بطباعة أول 7 أحرف موجودة في المتغير
print(s[0] + s[1] + s[2] + s[3] + s[4] + s[5] + s[6])
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # و بدأنا من اليسار s هنا قمنا بطباعة أول 7 أحرف موجودة في المتغير print(s[0] + s[1] + s[2] + s[3] + s[4] + s[5] + s[6])

النتيجة

welcome

الوصول لأحرف النص من اليمين إلى اليسار

في حال أردت المرور على أحرف النص من الآخر إلى الأول (أي من اليمين إلى اليسار) فعليك استخدام أرقام أصغر 0 و هكذا سيتم إعتبار أن الخانات قد تم ترقيمها إبتداءاً من الرقم 1- كالتالي.

ترقيم خانات النص من الآخر إلى الأول - Backward Indexing

معلومة: ترقيم الخانات من الآخر إلى الأول يسمى Backward Indexing.

في المثال التالي قمنا بطباعة محتوى آخر 3 أحرف من الجهة اليمنى و بالتالي سنحصل على الكلمة com.

مثال

Test.py
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه
s = 'welcome to harmash.com'
# و بدأنا من اليمين s هنا قمنا بطباعة آخر 3 أحرف موجودة في المتغير
print(s[-3] + s[-2] + s[-1])
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # و بدأنا من اليمين s هنا قمنا بطباعة آخر 3 أحرف موجودة في المتغير print(s[-3] + s[-2] + s[-1])

النتيجة

com

معرفة عدد أحرف النص

لمعرفة عدد أحرف النص نقوم باستدعاء الدالة len() و نمرر لها النص فقط.

مثال

Test.py
s = 'welcome to harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
print('Length of s =', len(s)) # len() الذي سترجعه الدالة s هنا قمنا بطباعة عدد أحرف (خانات) المتغير
s = 'welcome to harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه print('Length of s =', len(s)) # len() الذي سترجعه الدالة s هنا قمنا بطباعة عدد أحرف (خانات) المتغير

النتيجة

Length of s = 22

المسافات الفارغة ( White Spaces ) يتم حسابها كأحرف عادية.


مصطلحات تقنية

  • عدد أحرف النص يسمى Length.
  • رقم الخانة أو الفهرس يسمى Index.
  • أرقام الخانات أو أرقام الفهرس تسمى Indices.
  • إذا قمنا بأخذ جزء من النص فالجزء المأخوذ يسمى Substring.

تجزيء النص في بايثون بواسطة العامل []

لأخذ جزء من أي نص نعتمد على أرقام الخانات التي يتم إعطاءها لكل حرف في النص.

ترقيم الخانات بالنسبة لدوال الكلاس str


في المثال التالي قمنا بعرض جزء محدد من النص الذي يحتويه المتغير s.
فعلياً، حددنا أننا نريد عرض جميع الأحرف الموجودة ابتداءاً من الخانة رقم 11 وصولاً إلى ما قبل الخانة رقم 18.

المثال الأول

Test.py
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه
s = 'welcome to harmash.com'
# s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة رقم 11 وصولاً إلى الخانة الموجودة ما قبل الخانة 18 في المتغير
print(s[11:18])
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة رقم 11 وصولاً إلى الخانة الموجودة ما قبل الخانة 18 في المتغير print(s[11:18])

النتيجة

harmash

في المثال التالي قمنا بعرض جزء غير محدد من النص الذي يحتويه المتغير s.
فعلياً، حددنا أننا نريد عرض جميع الأحرف الموجودة ابتداءاً من الخانة رقم 11 وصولاً إلى آخر خانة.

المثال الثاني

Test.py
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه
s = 'welcome to harmash.com'
# s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة رقم 11 وصولاً إلى آخر خانة موجودة في المتغير
print(s[11:])
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة رقم 11 وصولاً إلى آخر خانة موجودة في المتغير print(s[11:])

النتيجة

harmash.com

في المثال التالي قمنا بعرض جزء غير محدد من النص الذي يحتويه المتغير s.
فعلياً، حددنا أننا نريد عرض جميع الأحرف الموجودة ابتداءاً من الخانة الأولى وصولاً إلى ما قبل الخانة رقم 11.

المثال الثالث

Test.py
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه
s = 'welcome to harmash.com'
# s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة الأولى وصولاً إلى ما قبل الخانة رقم 11 في المتغير
print(s[:11])
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة الأولى وصولاً إلى ما قبل الخانة رقم 11 في المتغير print(s[:11])

النتيجة

welcome to

الرموز التي من خلالها نعرف نهاية السطر

الرمز الذي يتم وضعه للإشارة لنهاية السطر يختلف باختلاف أنواع التقنيات المستخدمة لحفظ البيانات التي نتعامل معها.
الرموز التالية كلها تعني نهاية السطر.

الرمز معناه بالإنجليزية
\n Line Feed
\r Carriage Return
\r\n Carriage Return + Line Feed
\v or \x0b Line Tabulation
\f or \x0c Form Feed
\x1c File Separator
\x1d Group Separator
\x1e Record Separator
\x85 Next Line (C1 Control Code)
\u2028 Line Separator
\u2029 Paragraph Separator

في المثال التالي قمنا بتخزين نص في المتغير s وضعنا فيه ثلاث مؤشرات \n لجعل النص يظهر على ثلاث أسطر عند عرضه.

مثال

Test.py
# \n يحتوي على 3 موشرات s هنا قمنا بتعريف متغير نصي إسمه
s = 'This is fist line.\nThis is second line.\nThis is third line.'
# و الذي سيظهر على 3 أسطر s هنا قمنا بطباعة النص الموجود في المتغير
print(s)
# \n يحتوي على 3 موشرات s هنا قمنا بتعريف متغير نصي إسمه s = 'This is fist line.\nThis is second line.\nThis is third line.' # و الذي سيظهر على 3 أسطر s هنا قمنا بطباعة النص الموجود في المتغير print(s)

النتيجة

This is fist line.
This is second line.
This is third line.

نلاحظ أن الرمز \n لا يظهر فعلياً بل يجعل ما يليه يظهر على سطر جديد فقط.


عندما تكون تستخدم هاتفك أو حاسوبك تقوم في العادة بالنقر على الزر Enter كلما أردت أن تنزل على سطر جديد.

سبب النزول على سطر جديد هو أنه قد تم إضافة رمز خاص بدون علمك في المكان الذي نقرت فيه على الزر Enter للإشارة إلى نهاية السطر. الرمز الذي يضافة يقال له مؤشر نهاية السطر ( End Of Line Flag ).

الدوال الجاهزة في الكلاس str

str هو كلاس جاهز في بايثون يحتوي على دوال كثيرة للتعامل مع محتوى النصوص سواء للبحث عن أحرف أو كلمات أو جمل، تجزيء النص، تغيير حالة الأحرف، دمج النصوص و غيرها.

سنقسم دوال الكلاس str إلى 5 فئات أساسية:

  • دوال للبحث ( Searching ).
  • دوال للتجزيء ( Substring ).
  • دوال للتبديل ( Replacing ).
  • دوال للمقارنة ( Comparison ).
  • دوال للمعالجة ( Manipulation ).

معلومة تقنية

عند التعامل مع أي دالة من دول الكلاس str سواء كان شرح هذه الدالة يقول أن الدالة تبدأ من أول النص إلى آخره أو تبدأ من نهايته إلى أوله. تخيل دائماً أن خانات النص قد تم ترقيمها من اليسار إلى اليمن.


تذكر أن str يعتبر Immutable class و هذا يعني أنه عند استدعاء أي دالة منه، فلن تعدل محتوى النص الأصلي الذي قام باستدعائها بل سترجع نسخة معدلة من هذا النص و سيبقى النص الأصلي كما هو.


دوال البحث الموجودة في الكلاس str

إسم الدالة مع تعريفها
1 count(sub[, start[, end]]) تبحث في النص الذي قام باستدعائها عن النص الذي نمرره لها مكان الباراميتر sub ثم ترجع عدد المرات التي تم فيها العثور عليه.
في حال لم يتم العثور على النص المراد البحث عنه فإنها ترجع 0.
شاهد المثال
2 find(sub[, start[, end]]) تبحث في النص الذي قام باستدعائها عن رقم أول خانة يوجد عندها النص الذي نمرره لها مكان الباراميتر sub و ترجعه.
في حال لم يتم العثور على النص المراد البحث عنه فإنها ترجع -1.
شاهد المثال
3 rfind(sub[, start[, end]]) الفرق بينها و بين الدالة find() أنها تبدأ عملية البحث من آخر خانة في النص الذي قام باستدعائها إلى أول خانة فيه.
شاهد المثال
4 index(sub[, start[, end]]) تبحث في النص الذي قام باستدعائها عن رقم أول خانة يوجد عندها النص الذي نمرره لها مكان الباراميتر sub و ترجعه.
في حال لم يتم العثور على النص المراد البحث عنه ترمي الإستثناء ValueError.
شاهد المثال
5 rindex(sub[, start[, end]]) الفرق بينها و بين الدالة index() أنها تبدأ عملية البحث من آخر خانة في النص الذي قام باستدعائها إلى أول خانة فيه.
شاهد المثال

دوال التجزيء الموجودة في الكلاس str

إسم الدالة مع تعريفها
1 split(sep=None, maxsplit=-1) ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص.
إفتراضياً، كل عنصر في هذه المصفوفة عبارة عن كلمة موجودة في النص.
مكان الباراميتر sep يمكن تمرير الحرف أو النص الذي على أساسه سيتم تقسيم النص الذي قام باستدعائها.
شاهد المثال
2 splitlines([keepends]) ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص.
كل عنصر في هذه المصفوفة عبارة عن سطر موجود في النص.
مكان الباراميتر keepends يمكن تمرير القيمة True لإبقاء الرموز التي من خلالها عرف مترجم بايثون كيف يفصل الأسطر عن بعضها و من ثم يضيف كل سطر كعنصر في المصفوفة.
شاهد المثال

دوال التبديل الموجودة في الكلاس str

إسم الدالة مع تعريفها
1 replace(old, new [, count]) ترجع نسخة من النص الذي قام باستدعائها مع تبديل كل جزئية فيها تتطابق مع النص نمرره لها مكان الباراميتر old بالنص الذي نمرره لها مكان الباراميتر new.
شاهد المثال
2 maketrans(x[, y[, z]]) تستخدم لبناء قاموس يمكن إستخدامه لتبديل أحرف النص بأحرف أخرى.
ملاحظة: من بعدها يجب استخدام الدالة translate() لتطبيق القاموس الذي تم تجهيزه على النص.
شاهد المثال
3 translate(table) ترجع نسخة من النص الذي قام باستدعائها مع تبديل بعض أحرف هذه النسخة بأحرف أخرى أو حذفها بالإعتماد على القاموس الذي نمرره لها مكان الباراميتر table.
ملاحظة: القاموس الذي يتم تمريره لهذه الدالة يتم بناؤه بالأساس بواسطة الدالة str.maketrans().
شاهد المثال

دوال المعالجة الموجودة في الكلاس str

إسم الدالة مع تعريفها
1 upper(s) ترجع نسخة من النص الذي نمرره لها عند استدعائها مكان الباراميتر s كل أحرفه كبيرة.
شاهد المثال
2 lower(s) ترجع نسخة من النص الذي نمرره لها عند استدعائها مكان الباراميتر s كل أحرفه صغيرة.
شاهد المثال
3 swapcase() ترجع نسخة من النص الذي قام باستدعائها مع تحويل الأحرف الكبيرة فيها لأحرف صغيرة و الأحرف الصغيرة فيها لأحرف كبيرة.
شاهد المثال
4 capitalize(s) ترجع نسخة من النص الذي نمرره لها عند استدعائها مكان الباراميتر s مع تحويل أول حرف فيه لحرف كبير.
إذاً، هذه الدالة مفيدة في حال أردنا أن نبدأ النص بحرف كبير.
شاهد المثال
5 title(s) ترجع نسخة من النص الذي نمرره لها عند استدعائها مكان الباراميتر s مع تحويل أول حرف من كل كلمة فيه لحرف كبير.
إذاً، هذه الدالة مفيدة في حال أردنا عرض عنوان حيث يتم في العادة كتابة أول حرف من كل كلمة فيه كحرف كبير.
شاهد المثال
6 join(iterable) ترجع نص جديد يمثل النص الذي قام باستدعائها مدمجاً بالنص أو بمصفوفة النصوص التي نمرره لها مكان الباراميتر iterable.
شاهد المثال
7 center(width[, fillchar]) تستخدم لعرض النص الذي قام باستدعائها في وسط السطر في حال لم يتعدى الطول الذي نحدده للسطر.
فعلياً، ترجع نسخة من النص و تضيف مسافات فارغة حوله عند الحاجة لجعله يظهر كأنه في المنتصف.
  • مكان الباراميتر width نمرر عدد يحدد طول السطر، عندها في حال كان طول النص أصغر من طول السطر سيتم عرضه في وسطه من خلال إضافة مسافات فارغة قبله و بعده.
  • fillchar هو باراميتر إختياري، مكانه يمكن تمرير حرف ليتم وضعه بدلاً من وضع مسافات فارغة.
شاهد المثال
8 expandtabs(tabsize=8) ترجع نسخة من النص الذي قام باستدعائها مع مضاعفة حجم المسافات الفارغة ( Tab Spaces ) التي تم إضافتها في النص بواسطة الرمز \t.
عادةً ما يتم تحويل الرمز \t إلى 4 مسافات فارغة عند عرضه و لكن في النسخة التي ترجعها الدالة expandtabs() سيتم تحويل كل رمز \t إلى 8 مسافات فارغة ما لم تقم بتحديد عدد المسافات بنفسك.
شاهد المثال
9 lstrip() ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في بدايته.
شاهد المثال
10 rstrip() ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في نهايته.
شاهد المثال
11 strip([chars]) ترجع نسخة من النص الذي قام باستدعائها مع حذف أي مسافة فارغة موجودة في بدايته و نهايته.
إفتراضياً، هذه الدالة تقوم بحذف المسافات الفارغة الموجودة في أول أو آخر النص لكن إن أردنا مسح أحرف معينة (بدلاً من المسافات الفارغة) في حال وجودها في بداية و نهاية النص فيمكننا تمرير هذه الأحرف مكان الباراميتر chars.
شاهد المثال
12 ljust(width[, fillchar]) ترجع نسخة من النص الذي قام باستدعائها مع إضافة مسافات فارغة في نهايته إذا تجاوز عدد أحرفه العدد الذي نمرره مكان الباراميتر width. و يمكننا تمرير أي حرف أو رمز مكان الباراميتر fillchar ليظهر بدلاً من المسافات الفارغة.
شاهد المثال
13 rjust(width[, fillchar]) ترجع نسخة من النص الذي قام باستدعائها مع إضافة مسافات فارغة في بدايته إذا تجاوز عدد أحرفه العدد الذي نمرره مكان الباراميتر width. و يمكننا تمرير أي حرف أو رمز مكان الباراميتر fillchar ليظهر بدلاً من المسافات الفارغة.
شاهد المثال

دوال المقارنة الموجودة في الكلاس str في بايثون

إسم الدالة مع تعريفها
1 startswith(sub[, start[, end]]) تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يبدأ بنص معين أم لا.
مكان الباراميتر sub يمكننا تمرير نص أو مصفوفة نصوص نوعها tuple.
في حال كان نص الباراميتر sub أو نص أحد عناصره (إن كان عبارة عن مصفوفة) موجود في بداية النص الذي قام باستدعائها سترجع True، غير ذلك ترجع False.
شاهد المثال
2 endswith(suffix[, start[, end]]) تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها ينتهي بنص معين أم لا.
مكان الباراميتر suffix يمكننا تمرير نص أو مصفوفة نصوص نوعها tuple.
في حال كان نص الباراميتر suffix أو نص أحد عناصره (إن كان عبارة عن مصفوفة) موجود في نهاية النص الذي قام باستدعائها سترجع True، غير ذلك ترجع False.
شاهد المثال
3 isalpha() تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على أحرف أبجدية فقط أم لا..
ترجع True إن كان كذلك، غير ذلك ترجع False.
شاهد المثال
4 isnumeric() تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على أرقام فقط أم لا.
ترجع True إن كان كذلك، غير ذلك ترجع False.
شاهد المثال
5 isdigit() تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على أرقام فقط أم لا.
ترجع True إن كان كذلك، غير ذلك ترجع False.
ملاحظة: هذه الدالة لا تعتبر الرموز التي تمثل قيم رقمية مثل الرمز ½ كرقم، و هذا هو الفرق بينها و بين الدالة isnumeric().
شاهد المثال
6 isalnum() تستخدم لمعرفة ما إن كان النص الذي قام باستدعائها يحتوي على أحرف أبجدية و أرقام فقط أم لا.
ترجع True في حال كان النص الذي قام باستدعائها يحتوي على أحرف أبجدية فقط، أرقام فقط، أو أحرف أبجدية و أرقام.
غير ذلك ترجع False.
شاهد المثال
7 islower() تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية صغيرة ( Small Letters ) أم لا.
ترجع True إن كان كذلك، غير ذلك ترجع False.
شاهد المثال
8 isupper() تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية كبيرة ( Capital Letters ) أم لا.
ترجع True إن كان كذلك، غير ذلك ترجع False.
شاهد المثال
9 istitle() تستخدم لمعرفة ما إذا كان أول حرف من كل كلمة في النص الذي قام باستدعائها هو حرف كبير ( Capital Letter ) أم لا.
ترجع True إن كان كذلك، غير ذلك ترجع False.
شاهد المثال
10 isspace() تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على مسافة فارغة ( White Space ) أو عدة مسافات فارغة فقط أم لا.
ترجع True إن كان كذلك، غير ذلك ترجع False.
شاهد المثال

العوامل التي تستخدم للتعامل مع النصوص


العامل +

هذا العامل يستخدم لدمج نصّين أو أكثر و يرجعهم كنص جديد.

مثال

Test.py
s1 = 'Mhamad' # يتألف من كلمة واحدة s1 هنا قمنا بتعريف متغير نصي إسمه
s2 = 'Harmush' # يتألف من كلمة واحدة s2 هنا قمنا بتعريف متغير نصي إسمه
s3 = s1 + ' ' + s2 # s2 يليه مسافة فارغة، يليه النص الموجود في ،s1 هنا قمنا بتعريف متغير نصي وضعنا فيه النص الموجود في
print(s3) # s3 هنا قمنا بطباعة ما تم وضعه في المتغير
s1 = 'Mhamad' # يتألف من كلمة واحدة s1 هنا قمنا بتعريف متغير نصي إسمه s2 = 'Harmush' # يتألف من كلمة واحدة s2 هنا قمنا بتعريف متغير نصي إسمه s3 = s1 + ' ' + s2 # s2 يليه مسافة فارغة، يليه النص الموجود في ،s1 هنا قمنا بتعريف متغير نصي وضعنا فيه النص الموجود في print(s3) # s3 هنا قمنا بطباعة ما تم وضعه في المتغير

النتيجة

Mhamad harmush

العامل *

هذا العامل يستخدم لتكرار النص عدد محدد من المرّات.

مثال

Test.py
s1 = 'Python ' # يتألف من كلمة واحدة s1 هنا قمنا بتعريف متغير نصي إسمه
s2 = s1 * 5 # s2 خمسة مرات و وضعنا النتيجة النهائية في المتغير s1 هنا قمنا بتكرار النص الموجود في المتغير
print(s2) # s2 هنا قمنا بطباعة ما تم وضعه في المتغير
s1 = 'Python ' # يتألف من كلمة واحدة s1 هنا قمنا بتعريف متغير نصي إسمه s2 = s1 * 5 # s2 خمسة مرات و وضعنا النتيجة النهائية في المتغير s1 هنا قمنا بتكرار النص الموجود في المتغير print(s2) # s2 هنا قمنا بطباعة ما تم وضعه في المتغير

النتيجة

Python Python Python Python Python

العامل %

هذا العامل يستخدم لدمج النصوص و غالباً ما يستخدم أثناء عرض محتوى أي نص بطريقة مرتبة حيث يتم حجز مكان في النص للقيم التي تم تخزينها سابقاً في متغيرات.

مثال

Test.py
name = 'Mhamad' # قمنا بتخزين قيمة نصية name في المتغير
money = 10 # قمنا بتخزين قيمة عددية money في المتغير
subject = 'programming' # قمنا بتخزين قيمة نصية subject في المتغير
age = 19 # قمنا بتخزين قيمة عددية age في المتغير
# و الذي ننوي عرضه مكانه name لحجز مكان للنص الموجود في المتغير %s هنا قمنا باستخدام الرمز
print('Hello my name is %s.' %(name))
# و الذي ننوي عرضه مكانه money لحجز مكان للرقم الموجود في المتغير %d هنا قمنا باستخدام الرمز
print('I have %d dollars.' %(money))
# age لحجز مكان للرقم الموجود في المتغير %d و الرمز subject لحجز مكان للنص الموجود في المتغير %s هنا قمنا باستخدام الرمز
print('I learn %s at %d.' %(subject, age))
name = 'Mhamad' # قمنا بتخزين قيمة نصية name في المتغير money = 10 # قمنا بتخزين قيمة عددية money في المتغير subject = 'programming' # قمنا بتخزين قيمة نصية subject في المتغير age = 19 # قمنا بتخزين قيمة عددية age في المتغير # و الذي ننوي عرضه مكانه name لحجز مكان للنص الموجود في المتغير %s هنا قمنا باستخدام الرمز print('Hello my name is %s.' %(name)) # و الذي ننوي عرضه مكانه money لحجز مكان للرقم الموجود في المتغير %d هنا قمنا باستخدام الرمز print('I have %d dollars.' %(money)) # age لحجز مكان للرقم الموجود في المتغير %d و الرمز subject لحجز مكان للنص الموجود في المتغير %s هنا قمنا باستخدام الرمز print('I learn %s at %d.' %(subject, age))

النتيجة

Hello my name is Mhamad.
I have 10 dollars.
I learn Programming at 19.

العامل in

هذا العامل يستخدم لمعرفة ما إن كان النص يحتوي على نص محدد.
يرجع True إن كان كذلك، و False إن لم يكن.

مثال

Test.py
s = 'Python is easy to learn.' # s هنا قمنا بتعريف متغير نصي إسمه
print('easy' in s) # s موجود في النص المخزن في المتغير 'easy' لأن النص True هنا سيتم طباعة
print('hard' in s) # s غير موجود في النص المخزن في المتغير 'hard' لأن النص False هنا سيتم طباعة
s = 'Python is easy to learn.' # s هنا قمنا بتعريف متغير نصي إسمه print('easy' in s) # s موجود في النص المخزن في المتغير 'easy' لأن النص True هنا سيتم طباعة print('hard' in s) # s غير موجود في النص المخزن في المتغير 'hard' لأن النص False هنا سيتم طباعة

النتيجة

True
False

العامل not in

هذا العامل يستخدم لمعرفة ما إن كان النص لا يحتوي على نص محدد.
يرجع True إن كان كذلك، و False إن لم يكن.

مثال

Test.py
s = 'Python is easy to learn.' # s هنا قمنا بتعريف متغير نصي إسمه
print('easy' not in s) # s موجود في النص المخزن في المتغير 'easy' لأن النص False هنا سيتم طباعة
print('hard' not in s) # s غير موجود في النص المخزن في المتغير 'hard' لأن النص True هنا سيتم طباعة
s = 'Python is easy to learn.' # s هنا قمنا بتعريف متغير نصي إسمه print('easy' not in s) # s موجود في النص المخزن في المتغير 'easy' لأن النص False هنا سيتم طباعة print('hard' not in s) # s غير موجود في النص المخزن في المتغير 'hard' لأن النص True هنا سيتم طباعة

النتيجة

False
True