הסבר בpyton

דובי 20

משתמש חדש
שלום
אני באמצע ללמוד לבד את שפת pyton (שפה ראשונה שלי, בלי שום רקע..)
ונתקעתי קצת עם העניין של של הלולאות בטווח, for range
x=0
y=0
z=0
: (for num in range (10,20,3
:if num>5
x=x+1
:if num==3
y=y+1
:else
z=z+2

(print(x
(print(y
(print(z​
אני יודע שהתשובה היא:
4
8
0

ואני לא מבין למה?, אני צריך לחשב את סכום המספרים בין 10 ל19 בקפיצות של 3, שזה 10+13+16+19=58 נכון?
עכשיו 58 אכן גדול מ5, אבל מה הענין עכשיו בx+1=x לא מצליח להבין את עניין ההצבה שלו ל0 וכו...וגם למה הוא יוצא 4 בסוף?
מי שיוכל להסביר לי את העניין הזה אודה לו מאד!
 
נערך לאחרונה ב:

ag

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

דובי 20

משתמש חדש
לא מוצא שום הסבר לעניין ההצבה של ה0 בx/y/z
בשום מדריך או קורס...
אני יודע טכני לעשות את זה, אבל רוצה להבין,
מי שמבין בpyton ויוכל להסביר לי בקצרה על הקוד תודה.
 

מאה100

משתמש מקצוען
אולי כדאי לדבג??
אגב, נראה לי שמוסיפים כל פעם אחד לX/Y ולא X+=NUM.
כלומר סופרים אותם לא סוכמים אותם...
 

יוגורט

משתמש מקצוען
ואני לא מבין למה?, אני צריך לחשב את סכום המספרים בין 10 ל19 בקפיצות של 3, שזה 10+13+16+19=58 נכון?
עכשיו 58 אכן גדול מ5, אבל מה הענין עכשיו בx+1=x לא מצליח להבין את עניין ההצבה שלו ל0 וכו...וגם למה הוא יוצא 4 בסוף?
מי שיוכל להסביר לי את העניין הזה אודה לו מאד!
זה לא מה שהקוד עושה,
הקוד רץ על המספרים 10,13,16,19. ושואל עבורם בכל פעם , האם הוא גדול מ5 אם כן X גדל ב1 מה שמסביר את העובדה שבסוף התהליך הוא שווה 4.
אח"כ שואלים האם המספר שווה ל3 והשתשובה שלילית בכל הפעמים ולכן בכל 4 הפעמים Z גדל ב2.
ואילו Y שווה ל0
 

s976

משתמש סופר מקצוען
הנדסת תוכנה
D I G I T A L
אני צריך לחשב את סכום המספרים בין 10 ל19 בקפיצות של 3, שזה 10+13+16+19=58 נכון?
לא נכון.
על כל פנים זה לא קשור לקוד שרשמת.
אתה מפעיל את הלולאה 4 פעמים עם הערכים הבאים של num:
10 13 16 19
כל פעם זה יותר מ5 ולכן כל פעם אתה מגדיל את x באחד. אז הגיוני שתקבל 4 בסוף.

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

Thinking

משתמש פעיל
Python:
#איתחול המשתנים בערך 0
x = 0
y = 0
z = 0
#מעבר בלולאה על המספרים בין 10 ל20 עם קפיצות 3 (10,13,16,19)
for num in range(10,20,3):
    #במידה והמספר גדול מ5 הגדל את (x) ב-1
    if(num > 5):
        x=x+1
    #במידה והמספר שווה 1 הגדל את (y) ב-1
    if(num==3):
        y=y+1
    #אחרת - במידה והמספר לא שווה 3 הגדל את (z) ב-2
    else:
        z=z+2

כל ארבעת המספרים גדולים מ5 ולכן x = 4
כל ארבעת המספרים שונים מ3 ולכן y = 0
ולכן z = 8
 

דובי 20

משתמש חדש
זה לא מה שהקוד עושה,
הקוד רץ על המספרים 10,13,16,19. ושואל עבורם בכל פעם , האם הוא גדול מ5 אם כן X גדל ב1 מה שמסביר את העובדה שבסוף התהליך הוא שווה 4.
אח"כ שואלים האם המספר שווה ל3 והשתשובה שלילית בכל הפעמים ולכן בכל 4 הפעמים Z גדל ב2.
ואילו Y שווה ל0

וואו תודה! ההסבר שלך היה הכי ברור והבנתי את הטעות שלי בהבנה של הקוד הזה
עכשיו הבנתי מצוין ויכול להתקדם הלאה(:

תודה לכולם!
 

דובי 20

משתמש חדש
Python:
#איתחול המשתנים בערך 0
x = 0
y = 0
z = 0
#מעבר בלולאה על המספרים בין 10 ל20 עם קפיצות 3 (10,13,16,19)
for num in range(10,20,3):
    #במידה והמספר גדול מ5 הגדל את (x) ב-1
    if(num > 5):
        x=x+1
    #במידה והמספר שווה 1 הגדל את (y) ב-1
    if(num==3):
        y=y+1
    #אחרת - במידה והמספר לא שווה 3 הגדל את (z) ב-2
    else:
        z=z+2

כל ארבעת המספרים גדולים מ5 ולכן x = 4
כל ארבעת המספרים שונים מ3 ולכן y = 0
ולכן z = 8

תודה רבה ממש!
ברור ומובן!
 

trew

מהמשתמשים המובילים!
עיצוב גרפי
מוזיקה ונגינה
הדמיות בתלת מימד
D I G I T A L
לא צריך סוגריים מסביב לתנאי
 

אולי מעניין אותך גם...

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק קנ

א הַלְלוּיָהּ הַלְלוּ אֵל בְּקָדְשׁוֹ הַלְלוּהוּ בִּרְקִיעַ עֻזּוֹ:ב הַלְלוּהוּ בִגְבוּרֹתָיו הַלְלוּהוּ כְּרֹב גֻּדְלוֹ:ג הַלְלוּהוּ בְּתֵקַע שׁוֹפָר הַלְלוּהוּ בְּנֵבֶל וְכִנּוֹר:ד הַלְלוּהוּ בְתֹף וּמָחוֹל הַלְלוּהוּ בְּמִנִּים וְעוּגָב:ה הַלְלוּהוּ בְצִלְצְלֵי שָׁמַע הַלְלוּהוּ בְּצִלְצְלֵי תְרוּעָה:ו כֹּל הַנְּשָׁמָה תְּהַלֵּל יָהּ הַלְלוּיָהּ:
נקרא  1  פעמים

ספירת העומר

לוח מודעות

למעלה