logo

כיצד לבדוק אם מחרוזת ריקה ב- Python

מחרוזות Python נותרות בלתי ניתנות לשינוי, מה שאומר שאנו יכולים לשנות אותן על סמך הפעולות שאנו מבצעים. הפונקציונליות המשמעותית ביותר של Python היא מניפולציה של מחרוזות. ניתן להשתמש בשיטות רבות, כולל גישות חיתוך מחרוזות, לולאה דרך האלמנטים שלה ושיטות מחרוזת, כדי לשנות את המחרוזת. חיוני להבין שמחרוזת עם רווחים היא למעשה מחרוזת ריקה באורך שאינו אפס. נושא זה יידון במדריך זה, כמו גם תרופה אפשרית. כתוצאה מכך, כאשר אנו משתמשים ב- רק() או ' לֹא ' כדי לבדוק אם יש מחרוזת ריקה, הוא למעשה סופר את הרווח כלא פחות מאשר תו של המחרוזת, לכן מחרוזת עם רווח לא תיספר כמחרוזת ריקה.

ב-Python, אנו יכולים להשתמש באחת מהדרכים הבסיסיות המתוארות להלן כדי לבדוק אם יש מחרוזת ריקה.

  1. משתמש ב-not operator
  2. שימוש בפונקציה len()
  3. שימוש ב-not + string.isspace()
  4. שימוש ב-len() + string.strip()
  5. באמצעות ו-+ string.strip()
  6. שימוש ב-__eq__

משתמש לא במפעיל

ה לֹא המפעיל מבצע את אותה עבודה כמו ה- רק() פוּנקצִיָה. ב-Python, מחרוזת ריקה אכן שווה ל-False. ה לֹא ניתן להשתמש באופרטור כדי לקבוע אם מחרוזת אכן ריקה או לא. ה לֹא הפעולה ב- Python מונעת מהמחרוזת להתפרש כמחרוזת ריקה אם היא מכילה רווחים.

דוגמא

השתמשנו בשני מחרוזות מסוג, string1 ו-string2, בדוגמה זו. ל-string2 יש רווחים לבנים, ו-string1 היא מחרוזת ריקה. לאחר מכן השתמשנו בתנאי 'אם else' כדי לבדוק אם המחרוזת הנתונה ריקה אם היא לא במחרוזת. עם זאת, הוא אינו ריק. רווחים לבנים אינם מטופלים כמחרוזות ריקות על ידי האופרטור not, ומכאן שהפלט לא יהיה מחרוזת ריקה במקרה של מחרוזת קלט שנייה. לבסוף, התוצאה הודפסה.

קוד:

מחרוזת Java replaceall
 #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 

שימוש בשיטת len()

נשתמש ב-python's רק() פונקציה לקביעת אורך המחרוזת. לאחר מכן, אם אורך המחרוזת שווה ל-0, המחרוזת ריקה; אחרת, זה לא. בעת שימוש ב רק() טכניקה ב- Python, המחרוזת לא ממש נחשבת כמחרוזת ריקה אם היא מכילה רווחים.

דוגמא

השתמשנו בשני מחרוזות מסוג, string1 ו-string2, בדוגמה זו. ל-string2 יש רווחים לבנים, ו-string1 היא מחרוזת ריקה. האורך של כל מחרוזות חושב לאחר מכן באמצעות הפונקציה len() של Python. לאחר מכן השתמשנו בלולאה 'אם-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') 

תְפוּקָה:

המרה של int למחרוזת ב-java
 string, string1 = '', with no spaces is empty string, string2 = ' ', with spaces is not empty 

שימוש ב-not Operator + str.isspace()

הוא בודק רווחים לבנים ברצועה באותו אופן שבו לְהִתְפַּשֵׁט() הפונקציה עושה זאת. למרות זאת, לְהִתְפַּשֵׁט() פונקציה לוקחת זמן רב כאשר היא מתנגדת str. isspace() מאז סטריפ() חייב לבצע פעולת רצועה, שדורשת הרבה עבודת מחשוב.

דוגמא

השתמשנו בשני מחרוזות מסוג, string1 ו-string2, בדוגמה זו. ל-string2 יש רווחים לבנים, ו-string1 היא מחרוזת ריקה. נעשה שימוש בתנאי 'אם-אחר'. השתמשנו ב isspace() שיטה בתנאי 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 

שימוש ב-len() + string.strip()

ב-Python, השתמש ב- len() + string.strip() טכניקה לאימות עבור מחרוזת ריקה לחלוטין. הרווח הלבן במחרוזת מוסר באמצעות ה- 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' Operator + strip().

שמנו לב שרווחים לבנים במחרוזות לא תמיד מתפרשים כמחרוזות ריקות. לכן, כאשר אנו משתמשים ב- לְהִתְפַּשֵׁט() פונקציה כדי לוודא אם המחרוזת ריקה, אנו אכן יכולים לבדוק גם רווחים לבנים.

דוגמא

השתמשנו בשתי מחרוזות קלט, string1 ו- string2, בדוגמה זו. ל-string2 יש רווחים לבנים, ו-string1 היא מחרוזת ריקה. לאחר מכן השתמשנו במצב if-else וב- לְהִתְפַּשֵׁט() פונקציה כדי לראות אם המחרוזת הייתה ריקה או לא. אם התנאי הוא False, המחרוזת ריקה, והבלוקים מבוצעים אחרת. רווח לבן נחשב גם כמחרוזת ריקה בשיטה זו. לבסוף, התוצאה הודפסה.

קוד:

 #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, בדוגמה זו. ל-string1 יש רווחים לבנים, ו-string2 היא מחרוזת ריקה. השתמשנו בתנאי 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__

הדנדר מזהה שיטות עם שני קווים תחתונים לפני ואחרי שמותיהם. ה __eq__ ניתן להשתמש בשיטה גם כדי לבדוק אם יש מחרוזת ריקה. כאשר מתקשרים ל __eq__ טכניקה ב- Python, המחרוזת אינה נחשבת כמחרוזת ריקה אם היא מכילה רווחים.

דוגמא

מספר שלם של java

השתמשנו בשתי מחרוזות קלט, string1 ו-string2, בדוגמה זו. ל-string2 יש רווחים לבנים, ו-string1 היא מחרוזת ריקה. ה __eq__ נעשה שימוש בפונקציה. במצב 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