קופסה עם שם
דמיינו קופסת נעליים שכתוב עליה בטוש ״ניקוד״, ובתוכה פתק עם המספר 0. בכל פעם שהשחקן אוסף מטבע, פותחים את הקופסה, קוראים את המספר, מוסיפים לו 1 ומחליפים את הפתק. זה בדיוק משתנה: שם (התווית) וערך (מה שבפנים). השם נשאר קבוע, והערך יכול להשתנות — ומכאן השם ״משתנה״.
בפייתון יוצרים משתנה בשורה אחת: score = 0. סימן השוויון כאן לא אומר ״שווה״ כמו במתמטיקה, אלא ״שים בתוך״: שים 0 בקופסה שנקראת score. לפעולה הזאת קוראים השמה. כדי להוסיף נקודה כותבים score = score + 1 — המחשב קורא את הערך הישן, מוסיף 1, ושם את התוצאה בחזרה. בסקראץ׳ יוצרים משתנה בכפתור ״צור משתנה״, ומשתמשים בבלוקים ״קבע ניקוד ל־0״ ו״שנה ניקוד ב־1״.
סוגי מידע
לא כל הקופסאות מכילות את אותו סוג דבר. יש מספרים שלמים, כמו 7 או -3. יש מספרים עשרוניים, כמו 2.5. יש טקסט — אות, מילה או משפט — שבתכנות נקרא מחרוזת, כי הוא ״מחרוזת״ של תווים, כמו חרוזים על חוט. ויש ערך בוליאני, שיכול להיות רק אמת או שקר. לכל אחד מאלה קוראים טיפוס נתונים, והמחשב מתייחס לכל טיפוס אחרת.
הנה ההבדל בפעולה: print(5 + 5) מציג 10, כי אלה שני מספרים. אבל print("5" + "5") מציג 55! המירכאות הופכות את 5 לטקסט, ו״חיבור״ של טקסטים פירושו להדביק אותם זה לזה. זה מפתיע בהתחלה, וזו גם סיבה נפוצה לבאגים: מספר שהמשתמש הקליד מגיע לתוכנית כטקסט, וצריך להמיר אותו למספר לפני שמחשבים איתו.
איך בוחרים שם טוב
מחשב לא אכפת לו איך קוראים למשתנה — x, a1 או banana. אבל לאנשים שקוראים את הקוד, כולל אתם בעוד שבוע, זה מאוד אכפת. שם כמו score, lives או player_name מסביר מיד מה יש בקופסה. שם כמו x מכריח לנחש. מתכנתים מנוסים אומרים שקוד נקרא הרבה יותר פעמים ממה שהוא נכתב, ולכן שווה להשקיע בשמות.
יש גם כמה כללים טכניים. בפייתון שם משתנה לא יכול להתחיל בספרה, לא יכול להכיל רווח (משתמשים בקו תחתון במקום), ויש מילים ששמורות לשפה עצמה — כמו if, for ו־while — ואי אפשר להשתמש בהן כשמות. ועוד דבר חשוב: פייתון מבדילה בין אותיות גדולות לקטנות, כך ש־Score ו־score הם שני משתנים שונים לגמרי.
משתנים בכל מקום
כמעט כל תוכנה מחזיקה הרבה משתנים. במשחק: ניקוד, חיים, רמה, המיקום של הדמות (x ו־y), המהירות שלה, והאם היא קופצת עכשיו (אמת או שקר). באפליקציית מזג אוויר: הטמפרטורה, שם העיר והאם צפוי גשם. בכל רגע, הערכים במשתנים מתארים את ״המצב״ של התוכנה.
כשרוצים לשמור הרבה ערכים מאותו סוג — למשל שמות של כל התלמידים בכיתה — לא יוצרים שלושים משתנים. משתמשים ברשימה: משתנה אחד שמכיל הרבה ערכים לפי הסדר. נכיר רשימות בשיעור על פייתון. בינתיים נסו לחשוב: אילו משתנים צריך כדי לבנות משחק ״תפוס את התפוח״?

