تبقى سلاسل بايثون غير قابلة للتغيير، مما يعني أنه يمكننا تغييرها بناءً على العمليات التي نقوم بتنفيذها. أهم وظيفة في بايثون هي معالجة السلسلة. يمكن استخدام العديد من الطرق، بما في ذلك أساليب تقطيع السلسلة، والتكرار عبر عناصرها، وطرق السلسلة، لتغيير السلسلة. من المهم أن نفهم أن السلسلة التي تحتوي على مسافات هي في الواقع سلسلة فارغة بطول غير صفري. ستتم مناقشة هذه المشكلة في هذا البرنامج التعليمي، بالإضافة إلى العلاج المحتمل. ونتيجة لذلك، عندما نستخدم فقط() أو ' لا ' عامل التشغيل للتحقق من وجود سلسلة فارغة، فهو في الواقع يحسب المساحة على أنها ليست أقل من حرف من السلسلة، وبالتالي لن يتم احتساب السلسلة ذات المسافة كسلسلة فارغة.
في بايثون، يمكننا استخدام إحدى الطرق الأساسية الموضحة أدناه للتحقق من وجود سلسلة فارغة.
- باستخدام ليس المشغل
- باستخدام وظيفة لين ().
- باستخدام not + string.isspace()
- باستخدام لين () + string.strip ()
- باستخدام و + string.strip()
- باستخدام __eq__
باستخدام ليس المشغل
ال لا يقوم المشغل بنفس الوظيفة التي يقوم بها فقط() وظيفة. في بايثون، السلسلة الفارغة تساوي بالفعل خطأ. ال لا يمكن استخدام عامل التشغيل لتحديد ما إذا كانت السلسلة فارغة بالفعل أم لا. ال لا تمنع العملية في بايثون تفسير السلسلة على أنها سلسلة فارغة إذا كانت تحتوي على مسافات.
مثال
لقد استخدمنا سلسلتين من النوع، string1 وstring2، في هذا المثال. تحتوي السلسلة 2 على مسافات بيضاء، والسلسلة 1 عبارة عن سلسلة فارغة. ثم استخدمنا شرط 'if else' للتحقق مما إذا كانت السلسلة المحددة فارغة إذا لم تكن موجودة في السلسلة. ومع ذلك، فهي ليست فارغة. لا يتم التعامل مع المسافات البيضاء كسلاسل فارغة بواسطة عامل التشغيل not، وبالتالي لن يكون الإخراج سلسلة فارغة في حالة سلسلة الإدخال الثانية. وأخيراً تمت طباعة النتيجة.
شفرة:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if not string1: print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if not string2: print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')
انتاج:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty
باستخدام طريقة لين ().
سوف نستخدم بيثون فقط() وظيفة لتحديد طول السلسلة. ثم، إذا كان طول السلسلة يساوي 0، فستكون السلسلة فارغة؛ خلاف ذلك، فإنه ليس كذلك. عند استخدام فقط() في بايثون، لا تعتبر السلسلة سلسلة فارغة إذا كانت تحتوي على مسافات.
مثال
لقد استخدمنا سلسلتين من النوع، string1 وstring2، في هذا المثال. تحتوي السلسلة 2 على مسافات بيضاء، والسلسلة 1 عبارة عن سلسلة فارغة. تم بعد ذلك حساب طول كل سلسلة باستخدام دالة Python len(). ثم استخدمنا حلقة 'if-else' للتحقق مما إذا كان طول السلسلة يساوي الصفر، وفي هذه الحالة يطبع الشرط أن السلسلة فارغة، وفي هذه الحالة سلسلة الطباعة ليست فارغة. لا تعتبر المسافات البيضاء في السلسلة فارغة فقط() ، مما أدى إلى سلسلة غير فارغة. وأخيرا، قمنا بطباعة نتيجة كلا السلسلتين.
شفرة:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' length1 = len(string1) length2 = len(string2) if length1 == 0: print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if length2 == 0: print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')
انتاج:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty
باستخدام not المشغل + str.isspace()
فهو يتحقق من وجود مسافات بيضاء في الشريط بنفس الطريقة التي يتحقق بها يجرد() وظيفة لا. لكن، يجرد() تستغرق الوظيفة وقتًا طويلاً عندما تتعارض معها شارع. إيسباس () نظرًا لأن strip() يجب أن ينفذ عملية شريطية، الأمر الذي يتطلب الكثير من أعمال الحوسبة.
مثال
لقد استخدمنا سلسلتين من النوع، string1 وstring2، في هذا المثال. تحتوي السلسلة 2 على مسافات بيضاء، والسلسلة 1 عبارة عن سلسلة فارغة. تم استخدام شرط 'إذا كان آخر'. استخدمنا إيسباس () الطريقة في شرط if else، والتي تتحقق من كافة مسافات السلسلة. أخيرًا، تمت طباعة الإخراج، ويمكنك أن ترى أن كلا السلسلتين فارغتان.
شفرة:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if string1 and not string1.isspace(): print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if string2 and not string2.isspace(): print(f'string, string2 = '{string2}', with spaces is empty') else: print(f'string, string2 = '{string2}', with spaces is not empty')
انتاج:
string, string1 = '', with no spaces is not empty string, string2 = ' ', with spaces is not empty
باستخدام لين () + string.strip ()
في بايثون، استخدم لين () + سلسلة. الشريط () تقنية للتحقق من وجود سلسلة فارغة تمامًا. تتم إزالة المسافة البيضاء في السلسلة باستخدام سلسلة.شريط () طريقة. إذا كان هناك أي مساحة في السلسلة، فإن يجرد() طريقة إزالته، و فقط() تتحقق الوظيفة مما إذا كانت السلسلة فارغة أم لا.
مثال
بغض النظر عن عدد المسافات التي نضعها في السلسلة، فإنه يزيلها كلها ويتحقق من طول السلسلة؛ إذا أعادت 0، السلسلة فارغة؛ وإلا فهو ليس كذلك.
شفرة:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if len(string1.strip()): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if len(string2.strip()): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')
انتاج:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty
استخدام الدالة 'and' + strip()
لقد لاحظنا أن المسافات البيضاء في السلاسل لا يتم تفسيرها دائمًا على أنها سلاسل فارغة. لذلك، عندما نستخدم يجرد() وظيفة للتحقق مما إذا كانت السلسلة فارغة، يمكننا بالفعل التحقق من وجود مسافات بيضاء أيضًا.
الذئب مقابل الثعلب
مثال
لقد استخدمنا سلسلتين إدخال، string1 وstring2، في هذا المثال. تحتوي السلسلة 2 على مسافات بيضاء، والسلسلة 1 عبارة عن سلسلة فارغة. ثم استخدمنا شرط if-else و يجرد() وظيفة لمعرفة ما إذا كانت السلسلة فارغة أم لا. إذا كان الشرط خطأ، تكون السلسلة فارغة، ويتم تنفيذ الكتل بطريقة أخرى. تعتبر المسافة البيضاء أيضًا بمثابة سلسلة فارغة في هذه الطريقة. وأخيراً تمت طباعة النتيجة.
شفرة:
#input empty with and without spaces string s = '' str = ' ' if string1 and string1.strip(): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if string2 and string2.strip(): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')
انتاج:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty
استخدام الدالة Strip()
لقد لاحظنا أن المسافات البيضاء في السلاسل لا يتم تفسيرها دائمًا على أنها سلاسل فارغة. لذلك، عندما نستخدم يجرد() وظيفة للتحقق مما إذا كانت السلسلة فارغة، يمكننا بالفعل التحقق من وجود مسافات بيضاء أيضًا.
مثال
لقد استخدمنا سلسلتين إدخال، string1 وstring2، في هذا المثال. تحتوي السلسلة 1 على مسافات بيضاء، والسلسلة 2 عبارة عن سلسلة فارغة. لقد استخدمنا شرط if else لتجريد السلاسل، وإزالة المسافات البيضاء، ثم إرجاع سلسلة فارغة إذا أصبحت السلسلة فارغة. السلسلة ليست فارغة خلاف ذلك. وأخيراً تمت طباعة النتيجة.
شفرة:
#input empty with and without spaces string s = '' str = ' ' if string1.strip(): print(f'string, string1 = '{string1}', with no spaces is not empty') else: print(f'string, string1 = '{string1}', with no spaces is empty') if string2.strip(): print(f'string, string2 = '{string2}', with spaces is not empty') else: print(f'string, string2 = '{string2}', with spaces is empty')
انتاج:
string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is empty
باستخدام طريقة __eq__
يحدد dunder الأساليب ذات الشرطتين السفليتين قبل وبعد أسمائهم. ال __مكافئ__ يمكن أيضًا استخدام الطريقة للتحقق من وجود سلسلة فارغة. عند الاتصال ب __مكافئ__ في بايثون، لا تعتبر السلسلة سلسلة فارغة إذا كانت تحتوي على مسافات.
مثال
لقد استخدمنا سلسلتين إدخال، string1 وstring2، في هذا المثال. تحتوي السلسلة 2 على مسافات بيضاء، والسلسلة 1 عبارة عن سلسلة فارغة. ال __مكافئ__ تم استخدام الوظيفة. في حالة الشرط if-else، استخدمنا الطريقة المحددة للتحقق مما إذا كانت السلسلة فارغة أم لا. وأخيراً تمت طباعة النتيجة. لا يتم التعامل مع المسافات البيضاء كسلاسل فارغة في هذا الأسلوب.
شفرة:
#taking an empty string and a string with spaces only string1 = '' string2 = ' ' if ''.__eq__(string1): print(f'string, string1 = '{string1}', with no spaces is empty') else: print(f'string, string1 = '{string1}', with no spaces is not empty') if ''.__eq__(string2): print(f'string, string1 = '{string2}', with no spaces is empty') else: print(f'string, string1 = '{string2}', with no spaces is not empty')
انتاج:
string, string1 = '', with no spaces is empty string, string1 = ' ', with no spaces is not empty