שבוע 2 פונקצית len

שלום לכם חברים/צוות

לאחר קריאה חוזרת ונשנית ומספר בלתי מבוטל של שינויים שעשיתי בקוד, החלטתי לפנות לעזרתכם כי הפונקציה לא רצה לי.
אשמח שתאירו את עיני מה אני מפספסת? תודות רבות לכם!

image

הקריאות ל-print בעייתיות.
גם לאחר מכן כדאי לך לבדוק את הקוד שלך עם כמה קלטים על-מנת לאתר עוד בעיות.

image

ראשית תודה! תוכלי לתת לי כיוון לאילו עוד בעיות עלי לשים לב בבקשה?
חשוב לי לציין שאני פונה לפורום רק לאחר שניסיתי לנתח בעצמי בהרבה מישורים

שימי לב למשפט התנאי שאת רושמת.

לשמל בראשון: את בודקת אם האורך של המילה הראשונה word1 גדול מ word2 ואז את שמה and ואת רושמת האורך של המחרוזת השלישית. בעצם את לא בודקת שום דבר עבור word3. מה שכן קורה הוא שברגע שיש משפט תנאי - ומוחזר בו ערך תקין (במקרה המשתנה word3) תמיד חוזר שם true. זה כמו לבדוק:

if len(word3):
תנאי כזה תמיד מחזיר אמת כל עוד הערך במשתנה שלך תקין. משמע הצד הזה של התנאי שלך תמיד מחזיר אמת כי הוא בודק אם הערך במשתנה הזה תקין ולא בודק שום דבר אחר עבורו.

את צריכה לפרק את התנאי את לשני תנאים וביניהם שיהיה and

תודה רבה אביעד!
תוכל לומר לי האם עכשיו אני בכיוון של מה שכתבת?
אם כן - מדוע עדייין הפונקציה לא רצה? :frowning:
אם לא - יכול אולי להכווין אותי שוב?

מתנצל שאני מציקה, ממש חשוב לי ללמוד ולהתעכב על זה…

כן את בכיוון.
הפונקציה לא רצה כי את לא ניגשת לתוך מה שיש במשתנים word1,2,3
שימי לב שמת להם גרשיים, ולכן זה פשוט בודק עבור הstring בשם word1 2 וכו … ולא עבור מה שיש בתוך המשתנים.

הענייין הוא שכאשר לא שמתי גרשיים בהתחלה עלתה לי השגיאה הבאה, אז חשבתי שאולי מסיבה שלא ברורה לי כן צריך גרשיים.

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

אני מדבר כרגע על גוף הפונציה - שימי לב שבמקום להתשמש בשמות המשתנים - השתמשת במחרוזות.

אביעד תודה רבה על הסבלנות… זה מוערך ממש וממש מלמד עבורי.

נדמה לי שאחרי כל השיגועים זה הצליח
(פתרון צונזר)

עשיתי לך סכמה :slight_smile:

image

2 לייקים

נסי לבדוק את הקריאה
longest_len(“a”, “b”, “c”)