זה סתם שם שנתתם, או שיש חשיבות לזה שהוא נקרא ככה? כלומר, יכולתם לכתוב במקום זה treasure_location, למשל, או שלמילה הזאת יש חשיבות מיוחדת בפייתון (לדוגמה, אבל להבדיל - for, while, in הן מילים שיש להן משמעות בפייתון).
אני מנסה להבין כי זה גם קצת מבלבל (מיקום כי עסקינן במפה או כי זה מפנה למיקום במילון?), וגם כי כשניסיתי לכתוב פונקציה זהה עם מילון אחר, העסק לא רץ, ואני מנסה להבין למה.
תודה!
orpazf
אין משמעות מיוחדת לשם מה הקוד שניסית לכתוב ולא רץ?
Yam
ממליץ לחזור שוב על המחברת שעוסקת בלולאות for.
לייק 1
barsonbolian
בדומה לקוד הזה שהופיע כדוגמה בערך באמצע המחברת:
treasure_maps = [
{‘x’: 36.671111, ‘y’: 65.808056},
{‘x’: 53.759748, ‘y’: -2.648121},
{‘x’: 52.333333, ‘y’: 1.183333},
{‘x’: 52.655278, ‘y’: -1.906667}
]
def check_evidences(weapon, location):
print(f"The killer is {name})
for location in students:
check_evidences(**location)
barsonbolian
תודה על העצה!
לחזור למשהו ספציפי במחברת הזאת? כי באופן כללי אני מרגישה שהבנתי אותה
Yam
הרעיון של for x in y מוסבר שם לעומק, ויתכן שמעבר שוב יעזור לך לבנות את ההבנה של מה הוא אותו x ומאיפה הוא מגיע
barsonbolian
תודה רבה, הבנתי את החלק הזה טוב, אבל אני מבינה למה מהשאלה שלי אפשר לחשוב אחרת.
הבעיה שלי הייתה שקוד שבניתי בדיוק לפי קוד לדוגמה שנתתם, לא הצליח לרוץ. למען האמת די ידעתי שlocation הוא שם שנתתם, אבל כיוון שהוא זה שלא מסתדר לי, הנחתי שעדיף לוודא שלא פספסתי משהו עם המילה הזאת מאשר להמשיך לפתור את התעלומה בעזרת אותם רמזים.
זה קצת יותר מסובך כרגע מלהבין מי הרוצח בהנתן זה שהראיות הן אקדח דרינגר ובית פיטרסן
elador9
תקראי את השגיאה שאת מקבלת - האם הפונקציה מקבלת ארגומנט לא צפוי?
אם כן, בחרת לפרק את המילון באמצעות שיטה שדורשת עוד משהו קטן שלא עשית.
יש הערה קטנה שיכולה לעזור לך בנושא של התעסקות עם מילון במחברת של התרגיל.
אם לא מצאת, אז תקראי:
שמות המשתנים שהפונקציה מקבלת אמורים להיות אותם שמות של ה-keys במילון.
ואם אני לא טועה הגדרת מחדש את check_evidences, אז אני לא בטוח שהפונקציה תעשה מה שאת מצפה ממנה.
barsonbolian
תודה רבה!
השגיאה שמופיעה היא:
File “”, line 8
print(f"The killer is {name})
^
SyntaxError: EOL while scanning string literal
לצערי אני לא יודעת לקרוא את הדברים האלה. מה זה EOL? מה אני אמורה להבין ממה שכתוב פה? כמעט כל שגיאה שמופיעה לי היא תעלומה בעיניי, שלא מקדמת אותי להבנה מה הבעיה.
אגב, כside note לצוות, אשמח ללמוד איך להבין מה הבעיה דרך השגיאה שמתקבלת.
לגבי ההערה המדוברת, הכוונה היא למשתנים שאני מכניסה בקריאה לפונקציה? כי המילה location לבד (כלומר לא print_treasure_location או treasure_location) מופיעה בפעם הראשונה בתוך הפונקציה
Yam
הטריק הוא פשוט לגגל את מה שאת לא מבינה.
גם גיגול של השגיאה וגם גיגול של EOL היה מוביל אותך לתוצאה טובה.
בתכנות אנחנו חייבים להגדיל ראש ולנסות לפתור בעיות בעצמנו. זה חלק מהמקצוע
לייק 1
barsonbolian
לא רציתי לעשות את זה כי כתבתם פה כל הזמן לא להשתמש בדברים שלא למדנו. לא רציתי ללכת בניגוד לנהלים שלכם, אבל אם מותר לחפש מידע בקשר לשגיאות, אעשה את זה!
ובסוף מצאתי את הטעות שלי, הקוד עובד עכשיו. תודה רבה לכל העוזרים!
אגב, רק כדי לוודא לפני שאני מעלה - מותר לכתוב פונקציה משלי במקום זו שסיפקתם לנוחיותנו?
וגם השתמשתי רק בunpacking אחד. אני מבינה מניסוח השאלה שזה עדיין תקין, אבל אשמח לעשות את זה עם שניים כמו שאמרתם. מישהו יכול לקרוא את הקוד שלי ולהכווין אותי לאיפה עוד יכול להכנס שם unpacking?
orronai
נכתב על ידי הסגל לא להשתמש בדברים שלא למדנו - כוונתם לא השתמש בכלים שלא למדנו. לגגל בעיות מתוך הקוד הן ללא ספק דבר שלמדנו להשתמש בו, וגם פיתרון טוב להבין מה השגיאה אם אין קצה חוט.
לייק 1
barsonbolian
כנראה שזה חלק ששכחתי ממנו… מתי למדנו לגגל את הדברים האלה?
orronai
ראי דוגמא בשבוע 3 על קבצים - encoding=utf8 כדוגמה לפיתרון בעיות.
קיימת עוד אחת לפחות ממה שזכור לי