مفهوم النصوص في بايثون
في عالم البرمجة, نقول للنص "String" سواء كان يتألف من حرف واحد, كلمة, جملة أو نص كبير جداً.
و من هذا المنطلق نستنتج أن النص عبارة عن سلسلة من الأحرف ليس لها حجم محدد.
في بايثون تم إنشاء الكلاس أو النوع str خصيصاً لتخزين القيم النصية.
معلومة تقنية
النوع str يعتمد على الترميز Unicode و هذا يعني أنك لن تواجه أي مشكلة عند التعامل مع نصوص عربية, إنجليزية, فرنسية إلخ..
المتغيرات النصية في بايثون ( التي نوعها str ) تعتبر Immutable. و هذا يعني أنك عندما تقوم بتعريف أي متغير تخزن فيه نص, فإن هذه النص سيحجز له مكان في الذاكرة مهما كان حجمه. و إذا قمت بإعطاء قيمة جديدة لهذا المتغير فإنه سيتم حذف القيمة القديمة من الذاكرة و إنشاء مكان جديد في الذاكرة و وضع القيمة الجديدة فيه لأنه لا يمكن تعديل نفس القيمة في نفس المكان في الذاكرة.
طريقة تعريف str
لتعريف نص في بايثون نستخدم الرمز ' أو الرمز " أو الرمز """.
هل يوجد فرق بين هذه الرموز؟
بالنسبة للرمز ' و الرمز " فإنه لا يوجد أي فرق بينهما. و يمكن إستخدام أي واحد منهما لتعريف نص يتألف من سطر واحد.
بالنسبة للرمز ''' و الرمز """ فإنه لا يوجد أي فرق بينهما. و يمكن إستخدام أي واحد منهما لتعريف نص كبير يتألف من عدة أسطر.
في المثال التالي قمنا بتعريف ثلاث متغيرات تحتوي على قيم نصية. لاحظنا أننا قمنا بتعريف كل متغيير بواسطة رمز مختلف.
المثال الأول
# هنا قمنا بتعريف ثلاث متغيرات تحتوي على قيم نصية
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)
•سنحصل على النتيجة التالية عند التشغيل.
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.
في المثال التالي قمنا بتعريف نص يحتوي على نفس الرموز التي تستخدم لتعريف النصوص.
المثال الثاني
# يحتوي على قيمة نصية text هنا قمنا بتعريف متغير إسمه text = """In this line we print 'single quotations' In this line we print "double quotations" """ # text هنا قمنا بعرض قيمة المتغير print(text)
•سنحصل على النتيجة التالية عند التشغيل.
In this line we print "double quotations"
مفهوم الـ Concatenation
Concatenation تعني وضع سلسلة من النصوص بجانب بعضها لعرضها كنص واحد. و هذا الأمر ستحتاجه في أي تطبيق.
فمثلاً, في البرامج أو المواقع التي تستخدمها تلاحظ أنه عند إنشاء حساب جديد يطلب منك أن تدخل إسمك على مرحلتين كالتالي:
- الإسم ( First Name ).
- إسم العائلة ( Last Name ).
بعد أن تنشئ حسابك تلاحظ أنه قام بعرض إسمك الكامل ( الإسم + إسم العائلة ).
عند وضع الإسمين بجانب بعضهما و كأنهما نص واحد يكون المبرمج فعلياً قد قام بدمجهما فقط و ليس إعادة كتابتهما من جديد.
في المثال التالي سنقوم بتعريف المتغير first_name لنضع فيه الإسم, و المتغير last_name لنضع فيه إسم العائلة, و المتغير 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)
•سنحصل على النتيجة التالية عند التشغيل.
طرق دمج النصوص
يمكنك تطبيق الـ Concatenation في بايثون بطريقتين:
بإستخدام العامل
+.أو باستخدام الدالة
join()التي تعطيك طرق متقدمة أكثر لدمج النصوص. ستجد شرح مفصل لهذه الدالة لاحقاً في هذا الدرس.
الدمج التلقائي للنصوص
في حال وضعت قيمتين نصيّتين بجانب بعضهما و وضعت بينهما مسافة فارغة ( أو عدة مسافات فارغة ) فإن مترجم بايثون سيقوم بدمجهمها لك بشكل تلقائي.
مثال
s = 'Mhamad' ' Harmush' # s هنا قمنا بوضع قيمتين نصيّتين بجانب بعضهما و قمنا بتخزينهما في المتغير print(s) # لنتأكد من أنه قد تم دمج النصين بشكل صحيح s3 هنا عرضنا قيمة المتغير
•سنحصل على النتيجة التالية عند التشغيل.
الوصول لأحرف النص في بايثون
لنفترض أننا قمنا بتعريف متغير إسمه s و قيمته النص 'welcome to harmash.com'
مثال
s = 'welcome to harmash.com'
سيتم تخزين نص المتغير s في الذاكرة حرفاً حرفاً و بالترتيب كما في هذه الصورة التالية.
طرق الوصول لأحرف النص
في حال أردت الوصول لأحرف هذا النص, فأمامك خيارين:
الوصول لأحرف النص من جهة اليسار إلى اليمين. و هذا يحدث بشكل تلقائي عندما تستخدم أرقام أكبر أو تساوي 0 للوصول لهذه الخانات التي تحتوي الأحرف.
الوصول لأحرف النص من جهة اليمين إلى اليسار. و هذا يحدث بشكل تلقائي عندما تستخدم أرقام أصغر من 0 للوصول لهذه الخانات التي تحتوي الأحرف.
الوصول لأحرف النص من اليسار إلى اليمين
في حال أردت المرور على أحرف هذا النص من اليسار إلى اليمين, سيتم إعتبار أن الخانات قد تم ترقيمها إبتداءاً من الرقم 0 كالتالي.
معلومة: طريقة ترقيم الخانات تسمى (Forward Indexing).
في المثال التالي سنقوم بطباعة محتوى أول 7 خانات إبتداءاً من الجهة اليسرى و بالتالي سنحصل على الكلمة welcome.
مثال
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # و بدأنا من اليسار s هنا قمنا بطباعة أول 7 أحرف موجودة في المتغير print(s[0] + s[1] + s[2] + s[3] + s[4] + s[5] + s[6])
•سنحصل على النتيجة التالية عند التشغيل.
الوصول لأحرف النص من اليمين إلى اليسار
في حال أردت المرور على أحرف هذا النص من اليمين إلى اليسار, سيتم إعتبار أن الخانات قد تم ترقيمها إبتداءاً من الرقم 1- كالتالي.
معلومة: طريقة ترقيم الخانات تسمى (Backward Indexing).
في المثال التالي سنقوم بطباعة محتوى آخر 3 خانات إبتداءاً من الجهة اليمنى و بالتالي سنحصل على الكلمة com.
مثال
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # و بدأنا من اليمين s هنا قمنا بطباعة آخر 3 أحرف موجودة في المتغير print(s[-3] + s[-2] + s[-1])
•سنحصل على النتيجة التالية عند التشغيل.
معرفة عدد أحرف النص بواسطة الدالة len(s)
لمعرفة عدد أحرف أي نص نقوم باستدعاء الدالة len() و من ثم نمرر لها النص مكان الباراميتر s.
ملاحظة: المسافات الفارغة ( White Spaces ) أيضاً يتم حسابها.
مثال
s = 'welcome to harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
print('Length of s =', len(s)) # len() الذي سترجعه الدالة s هنا قمنا بطباعة عدد أحرف (خانات) المتغير
•سنحصل على النتيجة التالية عند التشغيل.
مصطلحات تقنية
عدد أحرف النص يسمى Length.
رقم الخانة يسمى Index.
أرقام الخانات تسمى Indices.
إذا قمنا بأخذ جزء من النص. الجزء المأخوذ يسمى Substring.
أنت كمبرمج يمكنك إستغلال أرقام الخانات لتصل لمحتوى النص كالتالي.
تجزيء النص في بايثون بواسطة العامل []
لأخذ جزء من أي نص نعتمد على أرقام الخانات التي يتم إعطاءها لكل حرف في النص.
في المثال التالي سنقوم بعرض جزء محدد من النص الذي يحتويه المتغير s.
فعلياً, سنحدد أننا نريد عرض جميع الأحرف الموجودة ابتداءاً من الخانة رقم 11 وصولاً إلى ما قبل الخانة رقم 18.
المثال الأول
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة رقم 11 وصولاً إلى الخانة الموجودة ما قبل الخانة 18 في المتغير print(s[11:18])
•سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي سنقوم بعرض جزء غير محدد من النص الذي يحتويه المتغير s.
فعلياً, سنحدد أننا نريد عرض جميع الأحرف الموجودة ابتداءاً من الخانة رقم 11 وصولاً إلى آخر خانة.
المثال الثاني
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة رقم 11 وصولاً إلى آخر خانة موجودة في المتغير print(s[11:])
•سنحصل على النتيجة التالية عند التشغيل.
في المثال التالي سنقوم بعرض جزء غير محدد من النص الذي يحتويه المتغير s.
فعلياً, سنحدد أننا نريد عرض جميع الأحرف الموجودة ابتداءاً من الخانة الأولى وصولاً إلى ما قبل الخانة رقم 11.
المثال الثالث
# يحتوي على نص s هنا قمنا بتعريف متغير إسمه s = 'welcome to harmash.com' # s هنا قمنا بطباعة جميع الأحرف الموجودة إبتداءاً من الخانة الأولى وصولاً إلى ما قبل الخانة رقم 11 في المتغير print(s[:11])
•سنحصل على النتيجة التالية عند التشغيل.
الرموز التي من خلالها نعرف نهاية السطر في بايثون
الرمز الذي يتم وضعه للإشارة لنهاية السطر يختلف باختلاف أنواع التقنيات المستخدمة لحفظ البيانات التي نتعامل معها.
الرموز التالية كلها تعني نهاية السطر.
| الرمز | معناه بالإنجليزية |
|---|---|
\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 لجعل النص يظهر على ثلاث أسطر عند عرضه.
مثال
# \n يحتوي على 3 موشرات s هنا قمنا بتعريف متغير نصي إسمه s = 'This is fist line.\nThis is second line.\nThis is third line.' # و الذي سيظهر على 3 أسطر s هنا قمنا بطباعة النص الموجود في المتغير print(s)
•سنحصل على النتيجة التالية عند التشغيل.
This is second line.
This is third line.
•لاحظ أن الرمز \n لم يظهر في نهاية كل سطر, بل أدى فقط للنزول على السطر.
ملاحظة
عندما تكون تستخدم هاتفك أو حاسوبك تقوم في العادة بالنقر على الزر Enter كلما أردت أن تنزل على سطر جديد.
الذي عليك معرفته كمبرمج هو أن سبب النزول على سطر جديد هو أنه قد تم إضافة رمز خاص بدون علمك في المكان الذي نقرت فيه على الزر Enter للإشارة إلى نهاية السطر. الرمز الذي يضافة يقال له مؤشر نهاية السطر ( End Of Line Flag ).
الدوال الجاهزة في الكلاس str للتعامل مع النصوص في بايثون
الكلاس str هو كلاس جاهز في بايثون, يحتوي على دوال كثيرة للتعامل مع محتوى النصوص, سواء للبحث عن أحرف أو كلمات أو جمل, تجزيء النص, تغيير الـ Case للأحرف, دمج النصوص إلخ..
سنقسم دوال الكلاس str إلى 5 فئات أساسية:
دوال للبحث (Searching).
دوال للتجزيء (Substring).
دوال للتبديل (Replacing).
دوال للمقارنة (Comparison).
دوال للمعالجة (Manipulation).
معلومة تقنية
عند التعامل مع أي دالة من دول الكلاس str, سواء كان شرح هذه الدالة يقول أن الدالة تبدأ من أول النص إلى آخره أو تبدأ من نهايته إلى أوله. تخيل دائماً أن خانات النص قد تم ترقيمها هكذا.
تذكر
الكلاس str يعتبر Immutable class و هذا يعني أنك عندما تستدعي أي دالة على نص, فلن تعدل محتوى النص الأصلي الذي قام باستدعائها, بل سترجع نسخة معدلة من هذا النص و سيبقى النص الأصلي كما هو.
دوال البحث الموجودة في الكلاس str في بايثون
| إسم الدالة مع تعريفها | |
|---|---|
count(sub[, start[, end]])
ترجع رقم يمثل عدد المرات التي فيها إيجاد النص الذي تم تمريره مكان الباراميتر sub في النص الذي قام باستدعائها. |
|
find(sub[, start[, end]])
تبحث في النص الذي قام باستدعائها عن رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub و ترجعه.في حال لم يتم العثور على النص المراد البحث عنه ترجع 1- . |
|
rfind(sub[, start[, end]])
الفرق بينها و بين الدالة find() أنها تبدأ عملية البحث من آخر خانة في النص الذي قام باستدعائها إلى أول خانة فيه. |
|
index(sub[, start[, end]])
تبحث في النص الذي قام باستدعائها عن رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub و ترجعه.في حال لم يتم العثور على النص المراد البحث عنه ترمي الإستثناء ValueError. |
|
rindex(sub[, start[, end]])
الفرق بينها و بين الدالة index() أنها تبدأ عملية البحث من آخر خانة في النص الذي قام باستدعائها إلى أول خانة فيه. |
|
Python الدالة rindex()
تعريفها
تبدأ في البحث من آخر النص الذي قام باستدعائها لأوله عن رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub و ترجعه.
في حال لم يتم العثور على النص المراد البحث عنه ترمي الإستثناء ValueError.
الفرق بينها و بين الدالة index() أنها تبدأ عملية البحث من آخر خانة في النص الذي قام باستدعائها إلى أول خانة فيه.
بناؤها
rindex(sub[, start[, end]])
باراميترات
subعبارة عن نص عادي نوعهstrو هو النص الذي نريد البحث عنه.startباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن توقف البحث عندها.endباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن تبدأ البحث قبلها.
قيمة الإرجاع
ترجع رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub.
مثال
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'Python is a programming language. Python is easy to learn.'
# و بالتالي سيتم طباعة 0 'P' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rindex('P'))
# و بالتالي سيتم طباعة 0 'Python' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rindex('Python'))
# مع الإشارة إلى أننا بدأنا عملية البحث من آخر خانة وصولاً إلى الخانة رقم 10. و بالتالي سيتم طباعة 34 'Python' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rindex('Python', 10))
# -1 و بما أنه لا يوجد هذه الكلمة, سيتم طباعة .'Java' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rindex('Java'))
•سنحصل على النتيجة التالية عند التشغيل.
34
34
-1
Python الدالة index()
تعريفها
تبحث في النص الذي قام باستدعائها عن رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub و ترجعه.
في حال لم يتم العثور على النص المراد البحث عنه ترمي الإستثناء ValueError.
بناؤها
index(sub[, start[, end]])
باراميترات
subعبارة عن نص عادي نوعهstrو هو النص الذي نريد البحث عنه.startباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن تبدأ البحث من عندها.endباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن توقف البحث قبلها.
قيمة الإرجاع
ترجع رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub.
أخطاء محتملة
ترمي الإستثناء ValueError في حال لم يتم العثور على النص المراد البحث عنه.
مثال
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'Python is a programming language. Python is easy to learn.'
# و بالتالي سيتم طباعة 0 'P' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.index('P'))
# و بالتالي سيتم طباعة 0 'Python' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.index('Python'))
# مع الإشارة إلى أننا بدأنا عملية البحث من الخانة رقم 10. و بالتالي سيتم طباعة 34 'Python' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.index('Python', 10))
# ValueError و بما أنه لا يوجد هذه الكلمة, سيتم إظهار خطأ بعنوان .'Java' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.index('Java'))
•سنحصل على النتيجة التالية عند التشغيل.
0
34
File "C:/Users/Mhamad/PycharmProjects/myapp/Test.py", line 14, in <module>
print(s.index('Python'))
ValueError: substring not found
Python الدالة rfind()
تعريفها
تبدأ في البحث من آخر النص الذي قام باستدعائها لأوله عن رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub و ترجعه.
في حال لم يتم العثور على النص المراد البحث عنه ترجع 1- .
الفرق بينها و بين الدالة find() أنها تبدأ عملية البحث من آخر خانة في النص الذي قام باستدعائها إلى أول خانة فيه.
بناؤها
rfind(sub[, start[, end]])
باراميترات
subعبارة عن نص عادي نوعهstrو هو النص الذي نريد البحث عنه.startباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن توقف البحث عندها.endباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن تبدأ البحث قبلها.
قيمة الإرجاع
ترجع رقم أول خانة تم عندها إيجاد نفس النص أو الحرف الذي نمرره لها مكان الباراميتر sub.
و ترجع 1- حال لم يتم العثور على النص المراد البحث عنه.
مثال
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'Python is a programming language. Python is easy to learn.'
# و بالتالي سيتم طباعة 0 'P' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rfind('P'))
# و بالتالي سيتم طباعة 0 'Python' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rfind('Python'))
# مع الإشارة إلى أننا بدأنا عملية البحث من آخر خانة وصولاً إلى الخانة رقم 10. و بالتالي سيتم طباعة 34 'Python' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rfind('Python', 10))
# -1 و بما أنه لا يوجد هذه الكلمة, سيتم طباعة .'Java' يوجد عندها النص s هنا قمنا بطباعة رقم أول خانة في المتغير
print(s.rfind('Java'))
•سنحصل على النتيجة التالية عند التشغيل.
34
34
-1
Python الدالة count()
تعريفها
ترجع رقم يمثل عدد المرات التي فيها إيجاد النص الذي تم تمريره مكان الباراميتر sub في النص الذي قام باستدعائها.
بناؤها
count(sub[, start[, end]])
باراميترات
subعبارة عن نص عادي نوعهstrو هو النص الذي نريد البحث عنه.startباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن تبدأ بالبحث من عندها.endباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن يتوقف البحث عندها.
قيمة الإرجاع
ترجع رقم يمثل عدد المرات التي فيها إيجاد النص الذي تم تمريره مكان الباراميتر sub في النص الذي قام باستدعائها.
مثال
# s هنا قمنا بتعريف متغير نصي إسمه
s = "Hello, my name is Mhamad. I'm a full stack developer."
# s في النص الموجود في المتغير 'a' هنا قمنا بطباعة كم مرة يوجد النص
print(s.count('a'))
•سنحصل على النتيجة التالية عند التشغيل.
دوال التجزيء الموجودة في الكلاس str في بايثون
| إسم الدالة مع تعريفها | |
|---|---|
split(sep=None, maxsplit=-1)
ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص.مكان الباراميتر sep نمرر نص يحدد الطريقة التي سيتم على أساسها تقسيم النص و وضع كل قسم فيه في عنصر واحد بداخل المصفوفة. |
|
splitlines([keepends])
ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص. كل عنصر في هذه المصفوفة عبارة عن سطر موجود في النص.مكان الباراميتر keepends يمكنك تمرير القيمة True لإبقاء الرموز التي من خلالها عرف مترجم بايثون كيف يفصل الأسطر عن بعضها و من ثم يضيف كل سطر كعنصر في المصفوفة. |
|
Python الدالة splitlines()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص. كل عنصر في هذه المصفوفة عبارة عن سطر موجود في النص.
بناؤها
str.splitlines([keepends])
باراميترات
مكان الباراميتر keepends يمكنك تمرير القيمة True لإبقاء الرموز التي من خلالها عرف مترجم بايثون كيف يفصل الأسطر عن بعضها و من ثم يضيف كل سطر كعنصر في المصفوفة.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص. كل عنصر في هذه المصفوفة عبارة عن سطر موجود في النص.
المثال الأول
# يتألف من ثلاث أسطر s هنا قمنا بتعريف متغير نصي إسمه s = 'This is fist line.\nThis is second line.\nThis is third line.' # على أساس الرمز الذي يشير لنهاية السطر s لتجزئة النص الموجود في المتغير splitlines() هنا قمنا باستدعاء الدالة # arr و هكذا سيتم وضع كل سطر في النص في عنصر في المصفوفة arr = s.splitlines() # لاحظ أن كل عنصر يحتوي على سطر واحد .arr هنا قمنا بطباعة النص الذي تم تقسيمه على 3 عناصر في المصفوفة print(arr[0]) print(arr[1]) print(arr[2])
•سنحصل على النتيجة التالية عند التشغيل.
This is second line.
This is third line.
المثال الثاني
# يتألف من ثلاث أسطر s هنا قمنا بتعريف متغير نصي إسمه
s = 'This is fist line.\nThis is second line.\nThis is third line.'
# على أساس الرمز الذي يشير لنهاية السطر s لتجزئة النص الموجود في المتغير splitlines() هنا قمنا باستدعاء الدالة
# arr و هكذا سيتم وضع كل سطر في النص في عنصر في المصفوفة
arr = s.splitlines()
# for باستخدام الحلقة arr هنا قمنا بعرض قيم المصفوفة
for element in arr:
print(element)
•سنحصل على النتيجة التالية عند التشغيل.
This is second line.
This is third line.
Python الدالة split()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص.
مكان الباراميتر sep نمرر نص يحدد الطريقة التي سيتم على أساسها تقسيم النص و وضع كل قسم فيه في عنصر واحد بداخل المصفوفة.
بناؤها
str.split(sep=None, maxsplit=-1)
باراميترات
مكان الباراميتر
sepنمرر النص الذي على أساسه سيتم تجزئة النص الذي قام باستدعائها.مكان الباراميتر
maxsplitيمكننا عدم تمرير قيمة و يمكننا أن نمرر رقم عادي في حال أردنا تحديد عدد العناصر الأقصى في المصفوفة التي سترجعها الدالة.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مقسمة على شكل مصفوفة نصوص.
المثال الأول
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'split method is very useful.'
# على أساس المسافة الفارغة s لتجزئة النص الموجود في المتغير split() هنا قمنا باستدعاء الدالة
# arr و هكذا سيتم وضع كل كلمة في النص في عنصر في المصفوفة
arr = s.split(' ')
# لاحظ أن كل عنصر يحتوي على كلمة واحدة .arr هنا قمنا بطباعة النص الذي تم تقسيمه على 5 عناصر في المصفوفة
print(arr[0])
print(arr[1])
print(arr[2])
print(arr[3])
print(arr[4])
•سنحصل على النتيجة التالية عند التشغيل.
method
is
very
useful.
المثال الثاني
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'split method is very useful.'
# على أساس المسافة الفارغة s لتجزئة النص الموجود في المتغير split() هنا قمنا باستدعاء الدالة
# arr و هكذا سيتم وضع كل كلمة في النص في عنصر في المصفوفة
arr = s.split(' ')
# for باستخدام الحلقة arr هنا قمنا بعرض قيم المصفوفة
for element in arr:
print(element)
•سنحصل على النتيجة التالية عند التشغيل.
method
is
very
useful.
دوال التبديل الموجودة في الكلاس str في بايثون
| إسم الدالة مع تعريفها | |
|---|---|
replace(old, new [, count])
ترجع نسخة من النص الذي قام باستدعائها مع تبديل كل جزئية فيها تتطابق مع النص نمرره لها مكان الباراميتر old بالنص الذي نمرره لها مكان الباراميتر new. |
|
maketrans(x[, y[, z]])
تستخدم لبناء قاموس يمكن إستخدامه لتبديل أحرف النص بأحرف أخرى.ملاحظة: لتطبيق القاموس الذي قمت بتجهيزه على أي نص, تحتاج استخدام الدالة translate(). |
|
translate(table)
ترجع نسخة من النص الذي قام باستدعائها مع تبديل بعض أحرف هذه النسخة بأحرف أخرى أو حذفها بالإعتماد على القاموس الذي نمرره لها مكان الباراميتر table.ملاحظة: القاموس الذي نمرره لهذه الدالة نبنيه بالأساس بواسطة الدالة translate(). |
|
Python الدالة translate()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع تبديل بعض أحرف هذه النسخة بأحرف أخرى أو حذفها بالإعتماد على القاموس الذي نمرره لها مكان الباراميتر table.
ملاحظة: القاموس الذي نمرره لهذه الدالة نبنيه بالأساس بواسطة الدالة translate().
بناؤها
str.translate(table)
باراميترات
مكان الباراميتر
tableنمرر كائن نوعهtableيمثل القاموس الذي ستعتمده الدالة عند تعديل محتوى النص الذي سترجعه.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مع تبديل بعض أحرف هذه النسخة بأحرف أخرى أو حذفها بالإعتماد على القاموس الذي نمرره لها مكان الباراميتر table.
المثال الأول
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans('a', '-') # '-' بالرمز 'a' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف .dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير dictionary بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
h-rm-sh.com
المثال الثاني
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans('am', '-*') # dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
# '-' بالرمز 'a' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف
# '*' بالرمز 'm' و سيتم تبديل كل حرف
# يتم إيجاده 'o' كما أنه سيتم حذف كل حرف
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير dictionary بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
h-r*-sh.co*
المثال الثالث
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans('a', '-', 'm') # dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
# '-' بالرمز 'a' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف
# يتم إيجاده 'm' كما أنه سيتم حذف كل حرف
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير dictionary بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
h-r-sh.co
المثال الرابع
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans({ # dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
'h': 'XYZ', # 'XYZ' بالأحرف 'h' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف
'a': '555', # '555' بالأحرف 'a' و سيتم تبديل كل حرف
'.': '' # كما أنه سيتم حذف كل نقطة يتم إيجادها
})
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير table بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
XYZ555rm555sXYZcom
Python الدالة maketrans()
تعريفها
تستخدم لبناء قاموس يمكن إستخدامه لتبديل أحرف النص بأحرف أخرى.
ملاحظة: لتطبيق القاموس الذي قمت بتجهيزه على أي نص, تحتاج استخدام الدالة translate().
بناؤها
static str.maketrans(x[, y[, z]])
باراميترات
مكان الباراميتر
xنمرر الحرف أو مجموعة الأحرف التي نريد تبديلها بأحرف جديدة.
كما أنه يمكنك تمرير أن تمرر مكانه الأحرف التي تريد تبديلها و الأحرف التي تريد إستبدالها بها.الباراميتر
yهو باراميتر إختياري, نمرر الحرف أو مجموعة الأحرف التي نريد وضعها بدل الأحرف التي مررناها مكان الباراميترx.الباراميتر
zهو باراميتر إختياري, يمكنك أن تمرر مكانه أي حرف أو مجموعة أحرف تريد حذفها.
قيمة الإرجاع
ترجع قاموس نوعه table يمكن إستخدامه لتبديل أحرف النص بأحرف أخرى.
المثال الأول
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans('a', '-') # '-' بالرمز 'a' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف .dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير dictionary بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
h-rm-sh.com
المثال الثاني
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans('am', '-*') # dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
# '-' بالرمز 'a' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف
# '*' بالرمز 'm' و سيتم تبديل كل حرف
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير dictionary بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
h-r*-sh.co*
المثال الثالث
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans('a', '-', 'm') # dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
# '-' بالرمز 'a' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف
# يتم إيجاده 'm' كما أنه سيتم حذف كل حرف
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير dictionary بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
h-r-sh.co
المثال الرابع
s = 'harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه
dictionary = str.maketrans({ # dictionary هنا قمنا بإنشاء قاموس للترجمة إسمه
'h': 'XYZ', # 'XYZ' بالأحرف 'h' عند الترجمة بواسطة هذا القاموس سيتم تبديل كل حرف
'a': '555', # '555' بالأحرف 'a' و سيتم تبديل كل حرف
'.': '' # كما أنه سيتم حذف كل نقطة يتم إيجادها
})
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.translate(dictionary)) # s على المتغير table بعد تطبيق الترجمة المخزنة في القاموس translate() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
XYZ555rm555sXYZcom
Python الدالة replace()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع تبديل كل جزئية فيها تتطابق مع النص نمرره لها مكان الباراميتر old بالنص الذي نمرره لها مكان الباراميتر new.
بناؤها
str.replace(old, new [, count])
باراميترات
مكان الباراميتر
oldنمرر نص الذي نريد استبداله في النص الأصلي.مكان الباراميتر
newنمرر نص الذي سيحل مكانه في النسخة التي سترجعها.الباراميتر
countهو باراميتر إختياري, يمكنك أن تمرر مكانه رقم أكبر من صفر يمثل أول كم جزئية يتم العثور عليها تريدها أن تتبدل.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مع تبديل كل جزئية فيها تتطابق مع النص نمرره لها مكان الباراميتر old بالنص الذي نمرره لها مكان الباراميتر new.
المثال الأول
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'java is easy to learn. anyone can learn java.'
# كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s)
# 'python' بالكلمة s وجدتها في المتغير 'java' بعد أن بدلت كل كلمة replace() هنا قمنا بطباعة ما سترجعه الدالة
print(s.replace('java', 'python'))
•سنحصل على النتيجة التالية عند التشغيل.
python is easy to learn. anyone can learn python.
المثال الثاني
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'java is easy to learn. anyone can learn java.'
# كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s)
# 'python' بالكلمة s وجدتها في المتغير 'java' بعد أن بدلت أول كلمة replace() هنا قمنا بطباعة ما سترجعه الدالة
print(s.replace('java', 'python', 1))
•سنحصل على النتيجة التالية عند التشغيل.
python is easy to learn. anyone can learn java.
دوال المعالجة الموجودة في الكلاس str في بايثون
| إسم الدالة مع تعريفها | |
|---|---|
upper(s)
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s كل أحرفه كبيرة. |
|
lower(s)
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s كل أحرفه صغيرة. |
|
swapcase()
ترجع نسخة من النص الذي قام باستدعائها مع قلب الأحرف الكبيرة فيها لأحرف صغيرة و الأحرف الصغيرة فيها لأحرف كبيرة. |
|
capitalize(s)
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s مع تحويل أول حرف فيه لحرف كبير.إذاً, هذه الدالة مفيدة في حال كنت تريد أن تبدأ أي جملة تريد عرضها بحرف كبير. |
|
title(s)
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s مع تحويل أول حرف من كل كلمة فيه لحرف كبير.إذاً, هذه الدالة مفيدة في حال كنت ستعرض عنوان, لأنه في العادة يتم وضع أول حرف من كل كلمة في العنوان كحرف كبير. |
|
join(iterable)
ترجع نص جديد يمثل النص الذي قام باستدعائها مدمجاً بالنص أو بمصفوفة النصوص التي نمرره لها مكان الباراميتر iterable. |
|
center(width[, fillchar])
تستخدم لعرض النص الذي قام باستدعائها في وسط السطر, في حال لم يتعدى الطول الذي نحدده للسطر.فعلياً, ترجع نسخة من النص و تضيف مسافات فارغة حوله عند الحاجة لجعله يظهر كأنه في المنتصف.
|
|
expandtabs(tabsize=8)
ترجع نسخة من النص الذي قام باستدعائها مع مضاعفة حجم المسافات الفارغة ( Tab Spaces ) التي تم إضافتها في النص بواسطة الرمز \t.إفتراضياً, الرمز \t يمثل 4 مسافات فارغة عند عرض النص, و لكن في النسخة التي ترجعها الدالة expandtabs() سيتم تحويل كل رمز \t إلى 8 مسافات فارغة ما لم تقم بتحديد عدد المسافات بنفسك. |
|
lstrip()
ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في بدايته. |
|
rstrip()
ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في نهايته. |
|
strip([chars])
ترجع نسخة من النص الذي قام باستدعائها مع حذف أي مسافة فارغة موجودة في بدايته و نهايته.إفتراضياً, هذه الدالة تقوم بحذف المسافات الفارغة الموجودة في أول أو آخر النص لكن إن أردت مسح أحرف معينة ( بدلاً من المسافات الفارغة ) في حال وجودها في بداية و نهاية النص, يمكنك تمرير هذه الأحرف مكان الباراميتر chars. |
|
ljust(width[, fillchar])
ترجع نسخة من النص الذي قام باستدعائها مع إضافة مسافات فارغة في نهايته إذا تجاوز عدد أحرفه العدد الذي نمرره مكان الباراميتر width.و يمكنك تمرير أي حرف أو رمز مكان الباراميتر fillchar ليظهر بدلاً من المسافات الفارغة. |
|
rjust(width[, fillchar])
ترجع نسخة من النص الذي قام باستدعائها مع إضافة مسافات فارغة في بدايته إذا تجاوز عدد أحرفه العدد الذي نمرره مكان الباراميتر width.و يمكنك تمرير أي حرف أو رمز مكان الباراميتر fillchar ليظهر بدلاً من المسافات الفارغة. |
|
Python الدالة rjust()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع إضافة مسافات فارغة في بدايته إذا تجاوز عدد أحرفه العدد الذي نمرره مكان الباراميتر width.
و يمكنك تمرير أي حرف أو رمز مكان الباراميتر fillchar ليظهر بدلاً من المسافات الفارغة.
بناؤها
str.rjust(width[, fillchar])
باراميترات
مكان الباراميتر
widthنمرر رقم يحدد طول السطر, عندها في حال كان طول النص أصغر من طول السطر سيتم إضافة مسافات فارغة قبله.fillcharهو باراميتر إختياري يمكنك أن تمرر مكانه أي حرف حتى تريد وضعه بدل وضع مسافات فارغة.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها و قد تضيف بعض المسافات الفارغة أو بعض الأحرف في بدايته بناءاً على عدد الأحرف الموجودة فيه.
مثال
s = 'Python tutorial' # s هنا قمنا بتعريف متغير نصي إسمه print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير print(s.rjust(30)) # حتى يصبح عدد الأحرف يساوي 30 s بعد إضافة بعض المسافات الفارغة في أول نص المتغير lstrip() هنا قمنا بطباعة ما سترجعه الدالة print(s.rjust(30, '-')) # حتى يصبح عدد الأحرف يساوي 30 s بعد إضافة الرمز '-' عدة مرات في أول نص المتغير lstrip() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
•قمنا بتعليم ما تم إضافته على السطرين الثاني و الثالث باللون الأصفر حتى تلاحظ الفرق.
Python tutorial
---------------Python tutorial
Python الدالة ljust()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع إضافة مسافات فارغة في نهايته إذا تجاوز عدد أحرفه العدد الذي نمرره مكان الباراميتر width.
و يمكنك تمرير أي حرف أو رمز مكان الباراميتر fillchar ليظهر بدلاً من المسافات الفارغة.
بناؤها
str.ljust(width[, fillchar])
باراميترات
مكان الباراميتر
widthنمرر رقم يحدد طول السطر, عندها في حال كان طول النص أصغر من طول السطر سيتم إضافة مسافات فارغة بعده.fillcharهو باراميتر إختياري يمكنك أن تمرر مكانه أي حرف حتى تريد وضعه بدل وضع مسافات فارغة.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها و قد تضيف بعض المسافات الفارغة أو بعض الأحرف في نهايته بناءاً على عدد الأحرف الموجودة فيه.
مثال
s = 'Python tutorial' # s هنا قمنا بتعريف متغير نصي إسمه print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير print(s.ljust(30)) # حتى يصبح عدد الأحرف يساوي 30 s بعد إضافة بعض المسافات الفارغة في آخر نص المتغير lstrip() هنا قمنا بطباعة ما سترجعه الدالة print(s.ljust(30, '-')) # حتى يصبح عدد الأحرف يساوي 30 s بعد إضافة الرمز '-' عدة مرات في آخر نص المتغير lstrip() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
•قمنا بتعليم ما تم إضافته على السطرين الثاني و الثالث باللون الأصفر حتى تلاحظ الفرق.
Python tutorial
Python tutorial---------------
Python الدالة rstrip()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في نهايته.
بناؤها
str.rstrip()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في نهايته.
مثال
s = 'Python tutorial ' # وضعنا في نهايته بعض المسافات الفارغة s هنا قمنا بتعريف متغير نصي إسمه print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير print(s.rstrip()) # s عند استدعاءها على المتغير rstrip() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
•قمنا بتعليم المسافات الفارغة الموجودة في آخر السطر الأول باللون الأصفر حتى تلاحظ الفرق.
Python tutorial
Python الدالة strip()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع حذف أي مسافة فارغة موجودة في بدايته و نهايته.
إفتراضياً, هذه الدالة تقوم بحذف المسافات الفارغة الموجودة في أول أو آخر النص لكن إن أردت مسح أحرف معينة ( بدلاً من المسافات الفارغة ) في حال وجودها في بداية و نهاية النص, يمكنك تمرير هذه الأحرف مكان الباراميتر chars.
بناؤها
str.strip([chars])
باراميترات
مكان الباراميتر chars يمكنك تمرير النص الذي تريد حذفه من النسخة التي سترجعها الدالة في حال كان موجوداً في بداية أو نهاية النص الذي قام باستدعائها.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مع حذف أي مسافة فارغة موجودة في بدايته و نهايته.
في حال قمت بتمرير نص مكان الباراميتر chars فإنها تمسحه في حال وجوده في بداية و نهاية النص الذي قام باستدعائها بدلاً من أن تمسح المسافات الفارغة.
المثال الأول
s = ' Python tutorial ' # وضعنا في بدايته و نهايته بعض المسافات الفارغة s هنا قمنا بتعريف متغير نصي إسمه
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.strip('')) # s عند استدعاءها على المتغير strip() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
•قمنا بتعليم المسافات الفارغة الموجودة في السطر الأول باللون الأصفر حتى تلاحظ الفرق.
Python tutorial
المثال الثاني
s = '---- Python tutorial ----' # '-' وضعنا في بدايته و نهايته بعض الرموز s هنا قمنا بتعريف متغير نصي إسمه
print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير
print(s.strip('-')) # s عند استدعاءها على المتغير strip() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
•قمنا بتعليم المسافات الفارغة الموجودة في السطر الأول و الثاني باللون الأصفر. لاحظ أنه لم يتم حذفه بل تم فقط حذف الرموز -.
Python tutorial
Python الدالة lstrip()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في بدايته.
بناؤها
str.lstrip()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مع إزالة أي مسافة فارغة موجودة في بدايته.
مثال
s = ' Python tutorial' # وضعنا في بدايته بعض المسافات الفارغة s هنا قمنا بتعريف متغير نصي إسمه print(s) # كما هو s هنا قمنا بطباعة النص الموجود في المتغير print(s.lstrip()) # s عند استدعاءها على المتغير lstrip() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
Python tutorial
Python الدالة expandtabs()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع مضاعفة حجم المسافات الفارغة ( Tab Spaces ) التي تم إضافتها في النص بواسطة الرمز \t.
إفتراضياً, الرمز \t يمثل 4 مسافات فارغة عند عرض النص, و لكن في النسخة التي ترجعها الدالة expandtabs() سيتم تحويل كل رمز \t إلى 8 مسافات فارغة ما لم تقم بتحديد عدد المسافات بنفسك.
بناؤها
str.expandtabs(tabsize=8)
باراميترات
tabsize عبارة عن عدد صحيح يمثل عدد صحيح نوعه int يمثل عدد المسافات الفارغة التي سيتم وضعها مكان كل رمز \t موضوع في النص.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مع مضاعفة حجم المسافات الفارغة ( Tab Spaces ) التي تم إضافتها في النص بواسطة الرمز \t.
مثال
# في بداية النص, أي يحتوي على 4 مسافات فارغة \t يحتوي على الرمز s هنا قمنا بتعريف متغير نصي إسمه s = '\tWe add a tab space at the beginning.' # s هنا قمنا بعرض النص الموجود في المتغير print(s) # بـ 8 مسافات فارغة \t بعد أن تم تبديل الرمز s هنا قمنا بعرض النص الموجود في المتغير print(s.expandtabs()) # بـ 12 مسافات فارغة \t بعد أن تم تبديل الرمز s هنا قمنا بعرض النص الموجود في المتغير print(s.expandtabs(12))
•سنحصل على النتيجة التالية عند التشغيل.
We add a tab space at the beginning.
We add a tab space at the beginning.
Python الدالة center()
تعريفها
تستخدم لعرض النص الذي قام باستدعائها في وسط السطر, في حال لم يتعدى الطول الذي نحدده للسطر.
فعلياً, ترجع نسخة من النص و تضيف مسافات فارغة حوله عند الحاجة لجعله يظهر كأنه في المنتصف.
بناؤها
str.center(width[, fillchar])
باراميترات
مكان الباراميتر
widthنمرر رقم يحدد طول السطر, عندها في حال كان طول النص أصغر من طول السطر سيتم عرضه في وسطه من خلال إضافة مسافات فارغة قبله و بعده.fillcharهو باراميتر إختياري يمكنك أن تمرر مكانه أي حرف حتى تريد وضعه بدل وضع مسافات فارغة.
قيمة الإرجاع
ترجع نسخة من النص و تضيف مسافات فارغة حوله عند الحاجة لجعله يظهر كأنه في المنتصف.
المثال الأول
# يتألف من 30 حرف s هنا قمنا بتعريف متغير نصي إسمه s = 'Python is my favorite language' # و التي من المفترض أن تضيف بعض المسافات الفارغة حول النص حتى يظهر في المنتصف نسبة لـ 40 حرف center() هنا قمنا بطباعة النص الذي سترجعه الدالة print(s.center(40))
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أنه تم إضافة 5 مسافات فارغة قبل النص و 5 مسافات فارغة بعد النص و أن النص ظهر في المنتصف نسبة لـ 40 حرف.
المثال التالي هو نفس المثال السابق مع فارق بسيط و هو أننا هذه المرة سنطبع نقطات بدل المسافات الفارغة.
المثال الثاني
# يتألف من 30 حرف s هنا قمنا بتعريف متغير نصي إسمه s = 'Python is my favorite language' # و التي من المفترض أن تضيف بعض النقاط حول النص حتى يظهر في المنتصف نسبة لـ 40 حرف center() هنا قمنا بطباعة النص الذي سترجعه الدالة print(s.center(40, '.'))
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أنه تم إضافة 5 نقطات قبل النص و 5 نقاط بعد النص و أن النص ظهر في المنتصف نسبة لـ 40 حرف.
المثال التالي هو نفس المثال السابق و لكننا هذه المرة قلنا أنه في حال كان النص يحتوي على أقل من 20 حرف قم بإضافة مسافات فارغة حوله حتى يظهر في الوسط.
المثال الثالث
# يتألف من 30 حرف s هنا قمنا بتعريف متغير نصي إسمه s = 'Python is my favorite language' # أن لا تؤثر على النص الأصلي لأنها كانت ستؤثر عليه لأن عدد أحرفه أكبر من 20 center() هنا قمنا بطباعة النص الذي سترجعه الدالة print(s.center(20, '.'))
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أن النص لم يتأثر بالدالة center().
Python الدالة join()
تعريفها
ترجع نص جديد يمثل النص الذي قام باستدعائها مدمجاً بالنص أو بمصفوفة النصوص التي نمرره لها مكان الباراميتر iterable.
بناؤها
str.join(iterable)
باراميترات
iterable عبارة عن نص عادي نوعه str أو مصفوفة نصوص.
قيمة الإرجاع
ترجع نص جديد يمثل النص الذي قام باستدعائها مدمجاً بالنص أو بمصفوفة النصوص التي نمرره لها مكان الباراميتر iterable.
المثال الأول
s1 = '-' # s1 هنا قمنا بتعريف متغير نصي إسمه s2 = 'HARMASH' # s2 هنا قمنا بتعريف متغير نصي إسمه print(s1.join(s2)) # join() هنا قمنا بعرض النص الذي سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أن النص الذي أرجعته الدالة join() يمثل الأحرف الموجودة في المتغير s2 بنفس الترتيب و بين هذه الأحرف تم تكرار قيمة المتغير s1.
المثال الثاني
s = '-' # s هنا قمنا بتعريف متغير نصي إسمه arr = ['Jad', 'Nora', 'Hanna'] # و تحتوي على ثلاث نصوص arr إسمها ,List هنا قمنا بتعريف مصفوفة من النوع print(s.join(arr)) # join() هنا قمنا بعرض النص الذي سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
•نلاحظ أن النص الذي أرجعته الدالة join() يمثل النصوص الموجودة في المصفوفة arr بنفس الترتيب و بين هذه النصوص تم تكرار قيمة المتغير s.
Python الدالة title()
تعريفها
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s مع تحويل أول حرف من كل كلمة فيه لحرف كبير.
إذاً, هذه الدالة مفيدة في حال كنت ستعرض عنوان, لأنه في العادة يتم وضع أول حرف من كل كلمة في العنوان كحرف كبير.
بناؤها
str.title(s)
باراميترات
s عبارة عن نص عادي نوعه str.
قيمة الإرجاع
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s مع تحويل أول حرف من كل كلمة فيه لحرف كبير.
مثال
s = 'best python tutorial' # s هنا قمنا بتعريف متغير نصي إسمه print(str.title(s)) # title() هنا قمنا بطباعة النص الذي سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
Python الدالة capitalize()
تعريفها
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s مع تحويل أول حرف فيه لحرف كبير.
إذاً, هذه الدالة مفيدة في حال كنت تريد أن تبدأ أي جملة تريد عرضها بحرف كبير.
بناؤها
str.capitalize(s)
باراميترات
s عبارة عن نص عادي نوعه str.
قيمة الإرجاع
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s مع تحويل أول حرف فيه لحرف كبير.
مثال
s = 'how old are you?' # s هنا قمنا بتعريف متغير نصي إسمه print(str.capitalize(s)) # capitalize() هنا قمنا بطباعة النص الذي سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
Python الدالة swapcase()
تعريفها
ترجع نسخة من النص الذي قام باستدعائها مع قلب الأحرف الكبيرة فيها لأحرف صغيرة و الأحرف الصغيرة فيها لأحرف كبيرة.
بناؤها
str.swapcase()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع نسخة من النص الذي قام باستدعائها مع قلب الأحرف الكبيرة فيها لأحرف صغيرة و الأحرف الصغيرة فيها لأحرف كبيرة.
مثال
# وضعنا فيه جملة كل أحرفها كبيرة و جملة كل أحرفها صغيرة s هنا قمنا بتعريف متغير نصي إسمه s = 'WE ARE CAPITAL LETTERS. we are small letters' # لاحظ أن الأحرف الكبيرة ستقلب لصغيرة و الأحرف الصغير ستقلب لكبيرة .swapcase() هنا قمنا بطباعة النص الذي سترجعه الدالة print(str.swapcase(s))
•سنحصل على النتيجة التالية عند التشغيل.
Python الدالة lower()
تعريفها
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s كل أحرفه صغيرة.
بناؤها
str.lower(s)
باراميترات
s عبارة عن نص عادي نوعه str.
قيمة الإرجاع
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s كل أحرفه صغيرة.
مثال
s = 'Welcome To Harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه print(str.lower(s)) # lower() هنا قمنا بطباعة النص الذي سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
Python الدالة upper()
تعريفها
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s كل أحرفه كبيرة.
بناؤها
str.upper(s)
باراميترات
s عبارة عن نص عادي نوعه str.
قيمة الإرجاع
ترجع نسخة من النص الذي نمرره لها عند استدعاءها مكان الباراميتر s كل أحرفه كبيرة.
مثال
s = 'Welcome To Harmash.com' # s هنا قمنا بتعريف متغير نصي إسمه print(str.upper(s)) # upper() هنا قمنا بطباعة النص الذي سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
دوال المقارنة الموجودة في الكلاس str في بايثون
| إسم الدالة مع تعريفها | |
|---|---|
startswith(sub[, start[, end]])
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يبدأ بنص معين أم لا.مكان الباراميتر sub يمكنك تمرير نص عادي, أو مصفوفة نصوص نوعها tuple.في حال كان نص الباراميتر sub ( أو نص أحد عناصره في حال كان عبارة عن مصفوفة ) موجود في بداية النص الذي قام باستدعائها سترجع True. غير ذلك ترجع False. | |
endswith(suffix[, start[, end]])
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها ينتهي بنص معين أم لا.مكان الباراميتر
suffix يمكنك تمرير نص عادي, أو مصفوفة نصوص نوعها tuple.في حال كان نص الباراميتر
suffix ( أو نص أحد عناصره في حال كان عبارة عن مصفوفة ) موجود في نهاية النص الذي قام باستدعائها سترجع True. غير ذلك ترجع False.
isalpha()
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على حرف أبجدي أو مجموعة أحرف أبجدية فقط أم لا.ترجع
True إن كان كذلك, غير ذلك ترجع False.ملاحظة: إسم هذه الدالة مشتق من الكلمة "Alphabet" التي تعني أحرف أبجدية.
isnumeric()
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على رقم أو مجموعة أرقام فقط أم لا.ترجع
True إن كان كذلك, غير ذلك ترجع False.isdigit()
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على رقم أو مجموعة أرقام فقط أم لا.ترجع
True إن كان كذلك, غير ذلك ترجع False.ملاحظة: هذه الدالة لا تعتبر الرموز التي تمثل قيم رقمية مثل الرمز ½ كرقم و هذا هو الفرق بينها و بين الدالة
isnumeric().isalnum()
تستخدم لمعرفة نوع أحرف النص الذي قام باستدعائها.ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على أحرف أبجدية و أرقام فقط.ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على أحرف أبجدية فقط.ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على أرقام فقط.ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على حرف أو رقم واحد فقط.غير ذلك ترجع
False.
islower()
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية صغيرة (Small Letters) فقط أم لا.ترجع
True إن كان كذلك, غير ذلك ترجع False.isupper()
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية كبيرة (Capital Letters) فقط أم لا.ترجع
True إن كان كذلك, غير ذلك ترجع False.istitle()
تستخدم لمعرفة ما إذا كان أول حرف من كل كلمة في النص الذي قام باستدعائها عبارة عن حرف كبير (Capital Letter) أم لا.ترجع
True إن كان كذلك, غير ذلك ترجع False.isspace()
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على مسافة فارغة (White Space) أو عدة مسافات فارغة فقط أم لا.ترجع
True إن كان كذلك, غير ذلك ترجع False.Python الدالة isspace()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على مسافة فارغة (White Space) أو عدة مسافات فارغة فقط أم لا.
ترجع True إن كان كذلك, غير ذلك ترجع False.
بناؤها
str.isspace()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع True في حال كان النص الذي قام باستدعائها يحتوي فقط على مسافة فارغة (White Space) أو عدة مسافات فارغة فقط.
غير ذلك ترجع False.
مثال
s1 = ' ' # وضعنا فيه نص يتألف من مسافة فارغة s1 هنا قمنا بتعريف متغير نصي إسمه s2 = ' ' # وضعنا فيه 4 مسافات فارغة s2 هنا قمنا بتعريف متغير نصي إسمه s3 = 'Hi ' # وضعنا فيه نص يتألف من أحرف أبجدية و مسافات فارغة s3 هنا قمنا بتعريف متغير نصي إسمه s4 = '' # لم نضع فيه أي شيء s4 هنا قمنا بتعريف متغير نصي إسمه print(s1.isspace()) # True و التي سترجع isspace() هنا قمنا بطباعة ما سترجعه الدالة print(s2.isspace()) # True و التي سترجع isspace() هنا قمنا بطباعة ما سترجعه الدالة print(s3.isspace()) # False و التي سترجع isspace() هنا قمنا بطباعة ما سترجعه الدالة print(s4.isspace()) # False و التي سترجع isspace() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
False
False
Python الدالة istitle()
تعريفها
تستخدم لمعرفة ما إذا كان أول حرف من كل كلمة في النص الذي قام باستدعائها عبارة عن حرف كبير (Capital Letter) أم لا.
ترجع True إن كان كذلك, غير ذلك ترجع False.
بناؤها
str.istitle()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع True في حال كان كان أول حرف من كل كلمة في النص الذي قام باستدعائها عبارة عن حرف كبير (Capital Letter).
غير ذلك ترجع False.
مثال
s1 = 'Learn Python For Beginners' # وضعنا فيه نص يحتوي على مجموعة كلمات تبدأ كل واحدة منها بحرف كبير s1 هنا قمنا بتعريف متغير نصي إسمه s2 = 'Learn python for beginners' # وضعنا فيه نص يحتوي على مجموعة كلمات, أول واحدة منهم فقط تبدأ بحرف كبير s2 هنا قمنا بتعريف متغير نصي إسمه print(s1.istitle()) # True و التي سترجع istitle() هنا قمنا بطباعة ما سترجعه الدالة print(s2.istitle()) # False و التي سترجع istitle() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
False
False
Python الدالة isupper()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية كبيرة (Capital Letters) فقط أم لا.
ترجع True إن كان كذلك, غير ذلك ترجع False.
ملاحظة: وجود مسافات فارغة ضمن محتوى النص لا يؤثر على نتيجة الإرجاع.
بناؤها
str.isupper()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع True في حال كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية كبيرة فقط.
غير ذلك ترجع False.
مثال
s1 = 'PYTHON LANGUAGE' # وضعنا فيه نص يتألف من أحرف صغيرة فقط s1 هنا قمنا بتعريف متغير نصي إسمه s2 = 'Python Language' # وضعنا فيه نص يتألف من أحرف صغيرة فقط s1 هنا قمنا بتعريف متغير نصي إسمه print(s1.isupper()) # True و التي سترجع isupper() هنا قمنا بطباعة ما سترجعه الدالة print(s2.isupper()) # False و التي سترجع isupper() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
False
Python الدالة islower()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية صغيرة (Small Letters) فقط أم لا.
ترجع True إن كان كذلك, غير ذلك ترجع False.
ملاحظة: وجود مسافات فارغة ضمن محتوى النص لا يؤثر على نتيجة الإرجاع.
بناؤها
str.islower()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع True في حال كان النص الذي قام باستدعائها يحتوي فقط على أحرف أبجدية صغيرة فقط.
غير ذلك ترجع False.
مثال
s1 = 'python language' # وضعنا فيه نص يتألف من أحرف صغيرة فقط s1 هنا قمنا بتعريف متغير نصي إسمه s2 = 'Python Language' # وضعنا فيه نص يتألف من أحرف صغيرة فقط s1 هنا قمنا بتعريف متغير نصي إسمه print(s1.islower()) # True و التي سترجع islower() هنا قمنا بطباعة ما سترجعه الدالة print(s2.islower()) # False و التي سترجع islower() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
False
Python الدالة isalnum()
تعريفها
تستخدم لمعرفة نوع أحرف النص الذي قام باستدعائها.
بناؤها
str.isalnum()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على أحرف أبجدية و أرقام فقط.ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على أحرف أبجدية فقط.ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على أرقام فقط.ترجع
Trueفي حال كان النص الذي قام باستدعائها يحتوي على حرف أو رقم واحد فقط.غير ذلك ترجع
False.
مثال
s1 = 'Python' # وضعنا فيه أحرف أبجدية s1 هنا قمنا بتعريف متغير نصي إسمه s2 = '123456' # وضعنا فيه أرقام s2 هنا قمنا بتعريف متغير نصي إسمه s3 = '3D' # وضعنا فيه حرف و رقم s3 هنا قمنا بتعريف متغير نصي إسمه s4 = "90s" # وضعنا فيه أحرف أبجدية و رقم s4 هنا قمنا بتعريف متغير نصي إسمه s5 = 'A' # وضعنا فيه حرف أبجدي s5 هنا قمنا بتعريف متغير نصي إسمه s6 = '6' # وضعنا فيه رقم s6 هنا قمنا بتعريف متغير نصي إسمه s7 = '' # لم نضع فيه أي شيء s7 هنا قمنا بتعريف متغير نصي إسمه s8 = 'facebook.com' # وضعنا فيه أحرف أبجدية و نقطة s8 هنا قمنا بتعريف متغير نصي إسمه s9 = 'facebook and google' # وضعنا فيه أحرف أبجدية و مسافات فارغة s9 هنا قمنا بتعريف متغير نصي إسمه print(s1.isalnum()) # True و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s2.isalnum()) # True و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s3.isalnum()) # True و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s4.isalnum()) # True و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s5.isalnum()) # True و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s6.isalnum()) # True و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s7.isalnum()) # False و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s8.isalnum()) # False و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة print(s9.isalnum()) # False و التي سترجع isalnum() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
True
True
True
True
False
False
False
Python الدالة isdigit()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على رقم أو مجموعة أرقام فقط أم لا.
ملاحظة: هذه الدالة لا تعتبر الرموز التي تمثل قيم رقمية مثل الرمز ½ كرقم.
بناؤها
str.isdigit()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع True في حال كان النص الذي قام باستدعائها يحتوي على رقم أو مجموعة أرقام فقط.
غير ذلك ترجع False.
مثال
s1 = '5' # وضعنا فيه رقم s1 هنا قمنا بتعريف متغير نصي إسمه s2 = '500' # وضعنا فيه مجموعة أرقام s2 هنا قمنا بتعريف متغير نصي إسمه s3 = '½' # وضعنا فيه رمز يمثل 1 مقسوم على 2 s3 هنا قمنا بتعريف متغير نصي إسمه s4 = '5 0' # وضعنا فيه رقمين و بينهما مسافة فارغة s4 هنا قمنا بتعريف متغير نصي إسمه s5 = '3D' # وضعنا فيه حرف و رقم s5 هنا قمنا بتعريف متغير نصي إسمه s6 = '' # لم نضع فيه أي شيء s6 هنا قمنا بتعريف متغير نصي إسمه print(s1.isdigit()) # True و التي سترجع isdigit() هنا قمنا بطباعة ما سترجعه الدالة print(s2.isdigit()) # True و التي سترجع isdigit() هنا قمنا بطباعة ما سترجعه الدالة print(s3.isdigit()) # False و التي سترجع isdigit() هنا قمنا بطباعة ما سترجعه الدالة print(s4.isdigit()) # False و التي سترجع isdigit() هنا قمنا بطباعة ما سترجعه الدالة print(s5.isdigit()) # False و التي سترجع isdigit() هنا قمنا بطباعة ما سترجعه الدالة print(s6.isdigit()) # False و التي سترجع isdigit() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
False
False
False
False
Python الدالة isnumeric()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على رقم أو مجموعة أرقام فقط أم لا.
بناؤها
str.isnumeric()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع True في حال كان النص الذي قام باستدعائها يحتوي على رقم أو مجموعة أرقام فقط.
غير ذلك ترجع False.
مثال
s1 = '5' # وضعنا فيه رقم s1 هنا قمنا بتعريف متغير نصي إسمه s2 = '500' # وضعنا فيه مجموعة أرقام s2 هنا قمنا بتعريف متغير نصي إسمه s3 = '½' # وضعنا فيه رمز يمثل 1 مقسوم على 2 s3 هنا قمنا بتعريف متغير نصي إسمه s4 = '5 0' # وضعنا فيه رقمين و بينهما مسافة فارغة s4 هنا قمنا بتعريف متغير نصي إسمه s5 = '3D' # وضعنا فيه حرف و رقم s5 هنا قمنا بتعريف متغير نصي إسمه s6 = '' # لم نضع فيه أي شيء s6 هنا قمنا بتعريف متغير نصي إسمه print(s1.isnumeric()) # True و التي سترجع isnumeric() هنا قمنا بطباعة ما سترجعه الدالة print(s2.isnumeric()) # True و التي سترجع isnumeric() هنا قمنا بطباعة ما سترجعه الدالة print(s3.isnumeric()) # True و التي سترجع isnumeric() هنا قمنا بطباعة ما سترجعه الدالة print(s4.isnumeric()) # False و التي سترجع isnumeric() هنا قمنا بطباعة ما سترجعه الدالة print(s5.isnumeric()) # False و التي سترجع isnumeric() هنا قمنا بطباعة ما سترجعه الدالة print(s6.isnumeric()) # False و التي سترجع isnumeric() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
True
False
False
False
Python الدالة isalpha()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يحتوي على حرف أبجدي أو مجموعة أحرف أبجدية فقط أم لا.
بناؤها
str.isalpha()
باراميترات
لا تقبل أي باراميتر.
قيمة الإرجاع
ترجع True في حال كان النص الذي قام باستدعائها يحتوي على حرف أبجدي أو مجموعة أحرف أبجدية فقط.
غير ذلك ترجع False.
مثال
s1 = 'a' # وضعنا فيه حرف أبجدي s1 هنا قمنا بتعريف متغير نصي إسمه s2 = 'abc' # وضعنا فيه مجموعة أحرف أبجدية s2 هنا قمنا بتعريف متغير نصي إسمه s3 = 'a c' # وضعنا فيه حرفين و بينهما مسافة فارغة s3 هنا قمنا بتعريف متغير نصي إسمه s4 = '5' # وضعنا فيه رقم s4 هنا قمنا بتعريف متغير نصي إسمه s5 = 'A+' # + وضعنا فيه حرف أبجدي و الرمز s5 هنا قمنا بتعريف متغير نصي إسمه s6 = '' # لم نضع فيه أي شيء s6 هنا قمنا بتعريف متغير نصي إسمه print(s1.isalpha()) # True و التي سترجع isalpha() هنا قمنا بطباعة ما سترجعه الدالة print(s2.isalpha()) # True و التي سترجع isalpha() هنا قمنا بطباعة ما سترجعه الدالة print(s3.isalpha()) # False و التي سترجع isalpha() هنا قمنا بطباعة ما سترجعه الدالة print(s4.isalpha()) # False و التي سترجع isalpha() هنا قمنا بطباعة ما سترجعه الدالة print(s5.isalpha()) # False و التي سترجع isalpha() هنا قمنا بطباعة ما سترجعه الدالة print(s6.isalpha()) # False و التي سترجع isalpha() هنا قمنا بطباعة ما سترجعه الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
False
False
False
False
Python الدالة endswith()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها ينتهي بنص معين أم لا.
مكان الباراميتر suffix يمكن تمرير نص عادي, أو مصفوفة نصوص نوعها tuple.
إذا قمت بتمرير نص عادي مكان الباراميتر
suffix, فإنها ترجعTrueإن كانت أحرفه تطابق الأحرف الموجودة في نهاية النص الذي قام باستدعائها. غير ذلك ترجعFalse.إذا قمت بتمرير مصفوفة نصوص نوعها
tupleمكان الباراميترsuffix, فإنها ترجعTrueفي حال وجود نص فيها أحرفه تطابق النص الذي ينتهي به النص الذي قام باستدعائها. غير ذلك ترجعFalse.
بناؤها
endswith(suffix[, start[, end]])
باراميترات
suffixعبارة عن نص عادي أو مصفوفة نصوص نوعهاtuple.startباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن توقف البحث عندها.endباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن تبدأ البحث قبلها.
ملاحظة: start و end يمكنك تمرير قيم مكانهما فقط في حال قمت بتمرير نص عادي مكان الباراميتر suffix.
قيمة الإرجاع
في حال كان النص الذي قام باستدعائها ينتهي بنص الباراميتر suffix ( أو نص أحد عناصره في حال كان عبارة عن مصفوفة ) ترجع True.
في حال كان نص الباراميتر suffix ينتهي عند الخانة التي قمنا بتحديد مكان الباراميتر start في النص الذي قام باستدعائها ترجع True.
في حال تم تمرير نص فارغ مكان الباراميتر suffix ترجع True.
غير ذلك ترجع False.
المثال الأول
s = 'welcome to harmash.com'; # s هنا قمنا بتعريف متغير نصي إسمه
print(s.endswith('harmas.com')) # s موجود في نهاية نص المتغير 'welcome to' لأن النص True سترجع endswith() هنا الدالة
print(s.endswith('harmash')) # s غير موجود في نهاية نص المتغير 'harmash' لأن النص False سترجع endswith() هنا الدالة
print(s.endswith('harmash', 11)) # s غير موجود في بداية الخانة رقم 11 في المتغير 'harmash' لأن النص False سترجع endswith() هنا الدالة
print(s.endswith('harmash', 11, 18)) # s موجود في بداية الخانة رقم 11 و قبل الخانة رقم 18 في المتغير 'harmash' لأن النص True سترجع endswith() هنا الدالة
print(s.endswith('')) # لأننا نختبر قيمة نص فارغ True سترجع endswith() هنا الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
False
True
True
المثال الثاني
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'My favorite language is Python'
# و تحتوي على 3 نصوص tuple هنا قمنا بتعريف مصفوفة قيم نصية نوعها
arr = ('Java', 'Python', 'PHP')
# True سيتم طباعة 'PHP' أو النص 'Python' أو النص 'Java' إذا كان ينتهي بالنص .s هنا قمنا باختبار قيمة المتغير
print(s.endswith(arr))
•سنحصل على النتيجة التالية عند التشغيل.
Python الدالة startswith()
تعريفها
تستخدم لمعرفة ما إذا كان النص الذي قام باستدعائها يبدأ بنص معين أم لا.
مكان الباراميتر sub يمكن تمرير نص عادي, أو مصفوفة نصوص نوعها tuple.
إذا قمت بتمرير نص عادي مكان الباراميتر
sub, فإنها ترجعTrueإن كانت أحرفه تطابق الأحرف الموجودة في بداية النص الذي قام باستدعائها. غير ذلك ترجعFalse.إذا قمت بتمرير مصفوفة نصوص نوعها
tupleمكان الباراميترsub, فإنها ترجعTrueفي حال وجود نص فيها أحرفه تطابق النص الذي يبدأ به النص الذي قام باستدعائها. غير ذلك ترجعFalse.
بناؤها
startswith(sub[, start[, end]])
باراميترات
subعبارة عن نص عادي أو مصفوفة نصوص نوعهاtuple.startباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن تبدأ البحث من عندها.endباراميتر إختياري, يمكنك أن تمرر مكانه عدد صحيح يحدد رقم الخانة التي تريد أن توقف البحث قبلها.
ملاحظة: start و end يمكنك تمرير قيم مكانهما فقط في حال قمت بتمرير نص عادي مكان الباراميتر sub.
قيمة الإرجاع
في حال كان النص الذي قام باستدعائها يبدأ بنص الباراميتر sub ( أو نص أحد عناصره في حال كان عبارة عن مصفوفة ) ترجع True.
في حال كان نص الباراميتر sub يبدأ عند الخانة التي قمنا بتحديد مكان الباراميتر start في النص الذي قام باستدعائها ترجع True.
في حال تم تمرير نص فارغ مكان الباراميتر sub ترجع True.
غير ذلك ترجع False.
المثال الأول
s = 'welcome to harmash.com'; # s هنا قمنا بتعريف متغير نصي إسمه
print(s.startswith('welcome to')) # s موجود في بداية نص المتغير 'welcome to' لأن النص True سترجع startswith() هنا الدالة
print(s.startswith('welc')) # s موجود في بداية نص المتغير 'welc' لأن النص True سترجع startswith() هنا الدالة
print(s.startswith('harmash')) # s غير موجود في بداية نص المتغير 'harmash' لأن النص False سترجع startswith() هنا الدالة
print(s.startswith('harmash', 11)) # s موجود في بداية الخانة رقم 11 في المتغير 'harmash' لأن النص True سترجع startswith() هنا الدالة
print(s.startswith('')) # لأننا نختبر قيمة نص فارغ True سترجع startswith() هنا الدالة
•سنحصل على النتيجة التالية عند التشغيل.
True
False
True
True
المثال الثاني
# s هنا قمنا بتعريف متغير نصي إسمه
s = 'Python is a programming language.'
# و تحتوي على 3 نصوص tuple هنا قمنا بتعريف مصفوفة قيم نصية نوعها
arr = ('Java', 'Python', 'PHP')
# True سيتم طباعة 'PHP' أو النص 'Python' أو النص 'Java' إذا كان يبدأ بالنص .s هنا قمنا باختبار قيمة المتغير
print(s.startswith(arr))
•سنحصل على النتيجة التالية عند التشغيل.
العوامل التي تستخدم للتعامل مع النصوص في بايثون
العامل +
هذا العامل يستخدم لدمج نصّين أو أكثر و يرجعهم كنص جديد.
مثال
s1 = 'Mhamad' # يتألف من كلمة واحدة s1 هنا قمنا بتعريف متغير نصي إسمه s2 = 'Harmush' # يتألف من كلمة واحدة s2 هنا قمنا بتعريف متغير نصي إسمه s3 = s1 + ' ' + s2 # s2 ثم وضعنا مسافة فارغة, ثم وضعنا النص الموجود في ,s1 هنا قمنا بتعريف متغير نصي وضعنا فيه النص الموجود في print(s3) # s3 هنا قمنا بطباعة ما تم وضعه في المتغير
•سنحصل على النتيجة التالية عند التشغيل.
العامل *
هذا العامل يستخدم لتكرار النص عة مرات محددة.
مثال
s1 = 'Python ' # يتألف من كلمة واحدة s1 هنا قمنا بتعريف متغير نصي إسمه s2 = s1 * 5 # s2 خمسة مرات و وضعنا النتيجة النهائية في المتغير s1 هنا قمنا بتكرار النص الموجود في المتغير print(s2) # s2 هنا قمنا بطباعة ما تم وضعه في المتغير
•سنحصل على النتيجة التالية عند التشغيل.
العامل %
هذا العامل يستخدم لدمج النصوص و غالباً ما يستخدم أثناء عرض محتوى أي نص بطريقة مرتبة حيث يتم حجز مكان في النص للقيم التي تم تخزينها سابقاً في متغيرات.
مثال
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))
•سنحصل على النتيجة التالية عند التشغيل.
I have 10 dollars.
I learn Programming at 19.
العامل in
هذا العامل يستخدم لمعرفة ما إن كان النص يحتوي على كلمة أو جملة معينة فيه, حيث يرجع True إن كان كذلك و False إن لم يكن.
مثال
s = 'Python is easy to learn.' # s هنا قمنا بتعريف متغير نصي إسمه
print('easy' in s) # s موجود في النص المخزن في المتغير 'easy' لأن النص True هنا قمنا سيتم طباعة
print('hard' in s) # s غير موجود في النص المخزن في المتغير 'hard' لأن النص False هنا قمنا سيتم طباعة
•سنحصل على النتيجة التالية عند التشغيل.
False
العامل not in
هذا العامل يستخدم لمعرفة ما إن كان النص لا يحتوي على كلمة أو جملة معينة فيه, حيث يرجع True إن كان كذلك و False إن لم يكن.
مثال
s = 'Python is easy to learn.' # s هنا قمنا بتعريف متغير نصي إسمه
print('easy' not in s) # s موجود في النص المخزن في المتغير 'easy' لأن النص False هنا قمنا سيتم طباعة
print('hard' not in s) # s غير موجود في النص المخزن في المتغير 'hard' لأن النص True هنا قمنا سيتم طباعة
•سنحصل على النتيجة التالية عند التشغيل.
False