פסיק אחרי הערך האחרון במילון

שמתי לב שבמחברת 2 על מילונים גם בתרגיל של “מסר של יום טוב” וגם בתרגיל “מראה מראה שעל הקיר” יש פסיק אחרי הזוג הסדור האחרון במילון, אבל בהסברים שלפני לא היה.
בהתחלה חשבתי שזה בשביל למנוע בעיה במצב שבו שוכחים להוסיף פסיק, אבל ראיתי שכשהוספנו ערך לרשימה מוקדם יותר אז הפסיק התווסף לבד.
ואז אמרתי, טוב אולי זה כי זה כתוב בצורה מאט שונה עם ירידות שורה וכו’ ובצורה הזו דוודא כן צריך. אז מחקתי את הפסיק בסוף המילון והוספתי לו ערך חדש, וראיתי שעדיין הפסיק שלפניו התווסף לבד.
ואז נזכרתי שאמרתם שלמילונים “אין מקומות” (בגרסה שאנחנו משתמשים בה בפייתון), אז חשבתי אולי זה גם אומר שאם מדפיסים את המילון הוא עלול להופיע בסדר אקראי ולכן צריך שיהיה פסיק בסוף כל ערך למקרה שיופיע באמצע. אז הדפסתי אותו מלא פעמים, אבל הוא תמיד הודפס באותה הצורה.
אשמח לדעת למה במקרים האלו כן שמו פסיק בסוף ובאחרים לא. והאם נהוג תמיד לשים פסיקים בסוף מילון או שרק בתנאים מסויימים. בנוסף, האם זו תופעה גם ברשימות למשל?
גילוי נאות: לא פתרתי עדיין את התרגילים, אז יכול להיות שאבין את זה תוך כדי הפתירה, אבל הייתי ממש סקרנית ולא יכולתי לחכות חח
תודה! :smiley:

לייק 1

Interesting minutia indeed…

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

מקור 1
stackoverflow - מקור 2

תודה על ההשקעה :slight_smile:
קראתי את השרשורים האלו אבל לא מצאתי שם תשובה מספקת.
בקישור הראשון ציינו באג מסויים שלא כל כך הבנתי מה גורם לו לקרות, כי עד עכשיו כשהוספתי ערכים לרשימה אז לא קרתה הבעיה הזו, ולא שמתי פסיקים בסוף. יכול להיות שיש דרך להוסיף איברים לרשימה שלא למדנו עדיין שגורמת לזה?
והקישור השני מדבר בעיקר על tuples, ואם הבנתי נכון אז גם על זה שזה מאפשר לשנות סדר במילון בצורה נוחה, אבל לא ממש הבנתי למה נרצה לעשות את זה כי הרי אין משמעות לסדר במילון.

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

המחלוקת נובעת מהסיבות בגינן מלכתחילה צריך לשים שם פסיק:

  1. באופן כללי, מנומס להשאיר פסיק במבנים מרובי ערכים אחרי הערך האחרון, מכיוון שכשמישהו בא להוסיף ערך נוסף הוא עלול לשכוח להוסיף פסיק לשורה שלא שייכת לו. עדיף לדאוג לסביבה עבודה נקייה ו"מוכנה" עבור אנשים שיכנסו לנו לקוד.
  2. יש הרבה תוכנות לניהול גרסאות קוד שמראות את ההבדל בין גרסת הקוד הנוכחית שלך לבין גרסת הקוד הקודמת. במקרה שיש לך מבנה עם הרבה שורות (נניח מילון, שכל צמד key-value בו מופיע בשורה חדשה) ולא תשימי פסיק, בעריכה הבאה יצטרכו לשים שם פסיק בשורה האחרונה במבנה שלך כדי להוסיף ערך חדש. הבעיה: השורה שבה נוסף הפסיק תסומן בתוכנה לניהול גרסאות כשורה “חדשה”/שעברה שינוי, למרות שבפועל רק הוסיפו שם פסיק.

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

רואה על איזה שטויות וויכוחים מטופשים מתכנתים מבזבזים את הזמן שלהם? :slight_smile:

7 לייקים

תהיתי בזה אבל בשלב מסויים קיבלתי את זה כעובדה. לא להאמין שזה ממש נושא בביצה :joy:

פחחחחחח נראה לך שיש נושא שאפשר להתווכח עליו ולא ננצל את הצ’אנס?

למעשה האמנתע שעוד נשארו כמה כאלה שלא חחח