אורכי רשימות מחברת 7

היי
נתקלת בבעיה מסויימת כשרוצה לבדוק האם הרשימה ריקה
משום מה לא מצליחה בשום מצב להדפיס מה שצריך.
בשאר המקרים הפונקציה עובדת
אשמח לייעוץ :slight_smile:

תבדקי האם len מחזיר 0. אם כן זה אומר שהמחרוזת ריקה

היי :slight_smile:
תודה , זה מה שעשיתי ובגלל זה שמתי לב שהבעיה היא אחרת
האם מקש רווח ברשימה נחשב רשימה ריקה?
אם נניח החלטתי שמקבלת בקלט רשימה שמופרדת ב-, בין איבר לאיבר - למה אם מכניסה רק מקש רווח הרשימה עדיין לא נחשבת ריקה

רווח נחשב תו מסוג רווח. ולכן אינו נחשב ריק.
דרך יפה לדעת את זה היא לבדוק למשל אורך מחרוזת שיש בה רווח לדוגמא עבור:
string = “A B”
print(len(string)
נקבל 3. כי זה A + B + " ".

image

ככה יותר ברור.

תודה רבה ! עזר מאוד
כנראה שהשימוש שלי היה לא נכון במתודה .split()
ועברתי ל list() , רק דבר אחרון כדי לראות שלא פספסתי משהו, אם אני פועלת בצורה הזאת
list(string) בעצם כל אות במחרוזת הופך לאיבר ברשימה ? ללא צורך ב סימן מפריד
שוב תודה!!

אם תפעילי את הפונקציה list על מחרוזת אז כל תו במחרוזת יהפוך להיות מחרוזת בפני עצמו
בתוך רשימה
למשל כמו בדוגמא מקודם:
image
נראה שעבור מחרוזת באורך 3 נקבל רשימה של 3 תאים, ובכל תא תו מהמחרוזת.
התו רווח הוא שוב אני מזכיר לא מחרוזת ריקה. כלומר יהיה שם מחרוזת באורך 1 והתו בה הו מסוג רווח.

לייק 1

תודה רבה עזרת מאוד :slight_smile:

לייק 1

היי @aviadamar תודה רבה על העזרה בפורום! :slight_smile:
כדי שיהיה נוח, אפשר להשתמש ב־` (הסימן שנמצא במקלדת על המקש ~) משני הצדדים של הקוד כדי ליישר אותו נכון.
בקוד מרובה שורות אפשר להשתמש 3 פעמים בסימן הזה:

```python
a = 5 + 1
if a > 4:
    print(a)
```

יציג:

a = 5 + 1
if a > 4:
    print(a)
לייק 1

בדיקה

a = 5 + 1 
if a > 4: 
    print(a)

בהמשך לשאלה המקורית, אני בקוד ביקשתי input של רשימה ובעזרת split הפכתי את הקלט לרשימה.
הבעיה היא שכאשר לא מוכנס כלום ל- input (ממש כלום, אפילו לא רווח), הקוד עדיין מכיר ברשימה כבעלת איבר 1 [""]. כלומר, את בבדיקת “האם הרשימה ריקה או לא” אני משווה את אורך הרשימה ל-1 ולא ל-0.
האם זה תקין?

אין צורך לקבל קלט מהמשתמש בשאלה הזו :slight_smile: