בחוברת מספר 3 :
אם אני רושמת את התנאי שמתחלק גם ב3 וגם ב-5 לאחר השורות קוד של התנאים שמתחלק רקב- 3 ללא שארית ורק ב- 5 ללא שארית .הקוד לא קולט את זה.
אבל ואם אני רושמת שורה ראשונה בקוד הפונקציה את התנאי שמתחלת גם ב-3 וגם ב-5 בלי שארית זה קולט.
איך אני מתגברת על עניין הסדר בתוך הפונקציה ?
או שהוא חשוב וקריטי ?
orpazf
הסדר בתוך הפונקציה אכן חשוב, שימי לב שיש כמה דרכים לגשת לפתרון
לייק 1
D22
שאלה נוספת לגבי התרגיל הזה -
בהנחיות כתוב “אם xxx, הדפיסו …” . האם עלינו ממש להדפיס את הערך המוחזר (להפעיל עליו את print), או שמספיק להחזיר אותו (return) וזה נחשב שהדפסנו?
תודה רבה!
orpazf
למיטב הבנתי הדפיסו = print והחזירו = return, אבל אני חושבת שתשובה מאיש סגל תהיה ודאית יותר
Felixmn
אני לא יודע מה כוונת המשוררים במקרה הזה, אבל פיזבאז היא אכן בעיה נפוצה ובדר"כ הרעיון הוא ואריאציה על המשחק “שבע בום” אם מישהו זוכר, ובמקרה הזה הפונ’ אמורה להדפיס את המספר או פיז/באז/פיזבאז ולא להחזיר אותו.
matzov1
אשמח גם לקצת הכוונה, אני לא סגור על איך לכתוב את הפעולת חישוב.
האופרטור הוא %?
והאם אפשר להשוות פעולת חישוב למילה int? במטרה להשוות למספר שלם
ככה - if number % 3 == int:
הסתבכתי לגמרי עם התרגיל הזה
orpazf
השוואה ל-int היא לא הדרך לבדוק האם מספר הוא שלם או לא.
בנוסף, האופרטור % מחזיר את שארית החלוקה במספר, למשל אם מחלקים 5 ב-4 זה מחזיר 1. בפרט זה תמיד מחזיר מספר שלם גדול או שווה לאפס.
אם אתה רוצה לבדוק האם תוצאת החילוק היא מספר שלם אתה צריך לבדוק האם התוצאה של חילוק ב-/ היא מספר שלם.
לייק 1
matzov1
מה אני שם בצד הימני של הביטוי הבוליאני בשביל זה?
orpazf
לא רוצה להרוס כבר, אני רק ארמוז שאפשר להשתמש באופרטורים החשבוניים שלמדנו בשבוע הראשון כדי לבצע את הבדיקה הזו.
אם אתה מסתבך אתה מוזמן לשלוח לי הודעה בפרטי
mortur123
היי אורפז,
אני קצת מסתבכת עם השאלה הזו ואשמח לשלוח לך הודעה בפרטי בנושא, מה המייל שלך??
תודה!!
nivramati
אשמח להכוונה מה אני עושה לא נכון. אני מצרפת פה את הצורה שרשמתי את התרגיל הוא לא עובד כך שאין חשש לספויילרים.
בכל מקום שכתוב else או else if יגשו אליו רק אם הif או התנאים מעליו לא התקיימו.
אז אפשר לסדר את הפונקציה כך שתדפיס רק מה שאתם רוצים.
yosefco3
תחשבי על הסדר של התנאים.
אם הוא מתחלק ב3 , אז הגיוני שהוא שייך גם לקבוצה של אלו שמתחלקים ב3 וב5 , נכון ?
אז לא הגיוני לשים את התנאי הזה ראשון !
כי זה יצא נכון , ואחר כך גם התנאי של מתחלק ב3 וב5 יצא נכון , וזה ידפיס לנו פעמיים.
לכן נתחיל כך :
אם הוא מתחלק ב3 וב5 -
תעשה כך וכך.
נשים את התנאי הזה ראשון , כי הוא הכי “ספציפי”.
אחר כך נגיד elif - שזה למעשה else if כלומר - רק אם התנאי הראשון לא מתקיים :
אם הוא מתחלק ב3 תעשה כך וכך
אחר כך נגיד elif - שזה למעשה else if כלומר - רק אם התנאים הללו לא מתקיימים :
אם הוא מתחלק ב5 תעשה כך וכך.
else - תעשה כך וכך.
asafl14
,תבדקי שה input שלך הוא int ,
ב if הראשון כתוב - if reminder == 0 , ב elif הראשון כתוב אותו הדבר, יש פה סתירה לוגית
מה שכתוב בעצם: אם reminder == 0… אלא אם reminder == 0…
דבר נוסף, יש חשיבות לסדר בדיקה שמבצעים.
nivramati
אוקי אז זה ממש הגיוני וכתבתי את זה כמו שאמרת באמת. עכשיו זה אומר לי משהו אחר שה
Remainder = number % 5 and remainder = number % 3
SyntaxError: can’t assign to operator
מה הכוונה?
asafl14
נראה לי שמה שהתכוונת זה לקבל תשובה בוליאנית,
לכן צריך להשתמש ב == (השוואה) ולא ב = (השמה)
yosefco3
כמו שאסף אמר מעלי … ושחררי את הרמיינדר הזה , את לא צריכה אותו.
פשוט תבדקי האם השארית שווה 0 או לא - בלי שום reminder בדרך.