פורסם 2015 בדצמבר 199 שנים שלום, התחלתי ללמוד פייתון לא מזמן ואני באה ללא שום רקע בתכנות אז אולי השאלות יראו לכם קצת פשוטות ובכל זאת אשמח עם תענו לי על זה. אני מנסה לכתוב תוכנית שדורשת: מספר מושלם הוא מספר השווה לסכום מחלקיו (סכום אשר אינו כולל את המספר עצמו). למשל 6 ו – 28 הם מספרים מושלמים, כי (6=1+2+3) ו – (28=1+2+4+7+14) כתוב פונקציה שקולטת מספרי n ומדפיסה אם המספר מושלם או לא. זה מה שכתבתי:import math def f4(): num=int(input("please enter a number: ") for i in range(num,1,-1) if(num%i==0) sum=sum+i-אני מקבלת שגיאה if(sum==num) print("perfect") else: print("not perfect") להלן השאלות: 1.למה אני מקבלת את השגיאה? 2. האם התוכנית בכלל נכונה? 3.יש אופציה לקבל הסבר על איך זה עובד בדיוק מבחינת הלולאה והכל יש לי קצת קושי בהבנה הזאת וזה מביא אותי לבעיה שאני לא מצליחה בכלל לגשת לתרגילים. כפי שציינתי מקודם אין לי שום רקע בתכנות אז אם השאלות נראות לכם מובנות מאליו לי הם לא.....
פורסם 2015 בדצמבר 199 שנים ציטוט של Yulia Kobzar 1.למה אני מקבלת את השגיאה? 2. האם התוכנית בכלל נכונה? 3.יש אופציה לקבל הסבר על איך זה עובד בדיוק מבחינת הלולאה והכל יש לי קצת קושי בהבנה הזאת וזה מביא אותי לבעיה שאני לא מצליחה בכלל לגשת לתרגילים. כפי שציינתי מקודם אין לי שום רקע בתכנות אז אם השאלות נראות לכם מובנות מאליו לי הם לא.... הקוד שכתבת נכון, מה שזה עושה זה למנות את כל המספרים מ-0 עד num לתוך משתנה sum, אם הם מתחלקים ללא שארית (זה הif שבתוך הלולאה). אחרי ריצת הלולאה בודקים אם סכום המחלקים שווה למספר, ואם כן אז זה מספר מושלם. אני לא ממש מכיר פייתון (ואגב לדעתי עדיף לך להתחיל בשפת c# או גאווה), אבל זה נראה כמו שגיאת תחביר כלשהיא, כנראה במבנה של הלולאה, ותכתבי לולאות בתוך בלוק, וגם את הif.
פורסם 2015 בדצמבר 199 שנים ממה שאני רואה, יש סיכוי גדול שלא איפסת את המשתנה sum. את לא יכולה להכניס משהו למשתנה בלי לאפס אותו עם משהו. כלומר, את צריכה לכתוב את זה לפני שאת נכנסת ללולאה: var sum = 0 זה בג'אווה-סקריפט, אבל מאוד דומה לפייתון.
פורסם 2015 בדצמבר 199 שנים מחבר ציטוט של RnG אני ניסיתיעם הSUM=0 אבל אז זה גם נותן לי שגיאה ציטוט של donMON הקוד שכתבת נכון, מה שזה עושה זה למנות את כל המספרים מ-0 עד num לתוך משתנה sum, אם הם מתחלקים ללא שארית (זה הif שבתוך הלולאה). אחרי ריצת הלולאה בודקים אם סכום המחלקים שווה למספר, ואם כן אז זה מספר מושלם. אני לא ממש מכיר פייתון (ואגב לדעתי עדיף לך להתחיל בשפת c# או גאווה), אבל זה נראה כמו שגיאת תחביר כלשהיא, כנראה במבנה של הלולאה, ותכתבי לולאות בתוך בלוק, וגם את הif. זה קורס בתואר שהחליטו שמתחילים ממנו וסמסטר הבא אני מתחילה JAVA אבל אני מאוד פוחדת להיכשל בקורס הזה כי קצת מתקשה בהבנה תודה על ההסבר!
פורסם 2015 בדצמבר 199 שנים ציטוט של Yulia Kobzar זה קורס בתואר שהחליטו שמתחילים ממנו וסמסטר הבא אני מתחילה JAVA אבל אני מאוד פוחדת להיכשל בקורס הזה כי קצת מתקשה בהבנה תודה על ההסבר! עכשיו אני שם לב שבכותרת גם כתוב syntax error. אני לא מכיר פייתון אז אני לא יודע בדיוק. הלולאה שלך נכונה ? זה צריך להיות לולאה שרצה מI=0 עד num , תנאי I<Num , מקדם לולאה I++ חוץ מזה שמת את הלולאה בבלוק כמו שאמרתי? כולם מתקשים בהתחלה.. בכל מקרה שיהיה בהצלחה נערך 2015 בדצמבר 199 שנים על-ידי donMON
פורסם 2015 בדצמבר 209 שנים מחבר הלולאה רצה מI=0 יעד NUM לגבי התנאי I<NUM אין אותו לא הבנתי גם בשביל מה צריך אותו כלומר מה הוא יתן לי? ומקדם הלולאה הוא מתחיל ממספר חיובי
פורסם 2015 בדצמבר 209 שנים מחבר עוד שאלה חברים הצלחתי לתקן את השגיאת כתיב אבל כשאני מריצה את התכנית הבאה: import math def f4(): sum=0 num=int(input("please enter a number: ")) for i in range(num,1,-1): if num%i==0: sum=sum+i if(sum==num): print("perfect") else: print("not perfect") זה מה שאני מקבלת: f4() please enter a number: 6 perfect perfect perfect not perfect not perfect למה אני אמורה שידפיס לי או מושלם או לא אני לא מבינה למה כלהפירוט ואיך הוא מופיע?
פורסם 2015 בדצמבר 209 שנים יהיה הרבה יותר קל לקרוא את זה בפורום אם תכניסי את הקוד לתגית CODE בכל מקרה נדמה לי שהבעיה היא שאת מריצה את הבדיקה וההדפסה בכל איטרציה של הלולאה, את צריכה להריץ את הבדיקה רק בסוף כשהלולאה הסתיימה. בפייתון פתיחה וסיום בלוק הוא לפי ההזחה (indentation) של הקוד, יש טאב מיותר לפני החלק הזה: print("perfect") else: print("not perfect") תורידי אותו וזה אמור לעבוד
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.