העלאת תרגילים ותיקון הערות הבודק האוטומטי - פתרון לבעיות נפוצות

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

" ".join([item1.title(), item2.title()])
“{} {}”.format(item1.title(), item2.title())
item1.title() + " " + item2.title()

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

(item1 + " " + item2).title()

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

אפשר לשאול.
ובזמן שבחלק מהפעמים זה עניין של סגנון, יש יתרון לאנשים שדוברים את השפה כמה שנים וקראו כמה מיליוני שורות קוד בחייהם בשיפוט של אסתטיקה בנושאים הללו :slight_smile:
אפשר גם:
f"{item1} {item2}".title()

לייק 1

היי, בתרגיל סט הבודק הכניס אותי למלכוד חחח:
image
אחרי שמתקן:
image
וחוזר חלילה
https://solve.pythonic.guru/view/93941

פשוט list על ה־zip ישירות (וגם את זה לא צריך למען האמת; zip מחזירה generator, זה עדיף עבור הלולאה שבאה מיד אח"כ)

לייק 1

האמת שלא הבנתי על איזה שם משתנה הבודק האוטומטי טוען שלא הגדרתי.
אשמח לעזרה :blush:

אני מנחשת שcombinations - אולי לא ייבאת משהו?

2 לייקים

צדקת! תודה רבה (: :smiley: :smiley:

לייק 1

ב zip_with קיבלתי את ההודעה:

TypeError: unsupported operand type(s) for +: ‘int’ and ‘list’

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

את איפשהו בקוד מנסה לחבר בין מספר לרשימה

אבל זה עובד. ואפילו טוב. אם הייתי מנסה לחבר בין int לרשימה, הקוד לא היה עובד בכלל.
או שבדוגמאות שנתנו זה לא קורה, השאלה איזה דוגמה כן יכולה לגרום לי להבין איפה זה קורה בקוד, כי אני לא מוצאת איפה בקוד זה יכול לקרות (זה שורות קווד פונקציה מרכזית ועוד אחת של פונקציית add) , חוץ מכאמור מימוש הפונקציה add בעצמי שעד כמה שאני רואה, לא עשיתי את זה שם.

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

לייק 1

עובד מצויין גם במחברת חדשה וגם בפייתון טיוטר

שלחי לי את הקוד אני אנסה להסתכל.

מחקתי את add לצורך הבדיקה ועדיין מקבלת את ההודעה הזאת. טוב אני אשלח לך אבל בהצלחה הוא קצר אבל מסובך…

מציע לבדוק את הפלט עבור:

print(zip_with(max, {10:4, 20:2}, {100:4, 5:2}))

התוצאה צריכה להיות

[100, 20]

שאלה לגבי הערה: “הבודק האוטומטי: יבואי המודולים שלך מסודרים לא נכון. הקפידו לסדר אותם בסדר אלפבתי.”
שורה ראשונה: מודול קיים בפייתון, מתחיל באות r
שורה שלישית: מודול חיצוני, מתחיל באות n

שורה רביעית: מודול חיצוני מתחיל באות a
שורה חמישית: מודול חיצוני מתחיל באות m
אשמח להתייחסות לגבי הבעייתיות שבסדר
image

תנסה לסדר את כל החיצוניים לפי הא’ב גם אם הם import או from

לייק 1

Problem solved. תודה!

לייק 1

היי, בתרגיל מחלקת נקודות. הופיע


איך זה אם קיים
Screenshot (731)
וכן התרגיל עבר בדיקה של בודק מוסמך ללא הערה בנושא :confused:

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

לייק 1