מירי
כיתה ז · מבוא לתכנות בפייתון

משתנים וטיפוסים בפייתון int, float, str ו-bool

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

1

הרעיון

השורה coins = 50 היא השמה: שמים את 50 במשתנה בשם coins. מצד ימין של ה-= מחשבים ערך, ומצד שמאל כותבים את השם. השמה חדשה מחליפה את הערך הישן.

מספרים: int ו-float

int הוא מספר שלם, כמו 7 או -3. float הוא מספר עם נקודה, כמו 12.5. גם 10.0 הוא float. חילוק ב-/ תמיד נותן float.

טקסט: str

str הוא מחרוזת, כלומר טקסט בתוך מרכאות: "Sword". גם "50" הוא טקסט, לא מספר. + בין מחרוזות מדביק אותן.

אמת ושקר: bool

bool הוא אחד משני ערכים: True או False. השוואה כמו coins >= 20 נותנת bool. בעזרתו התוכנית מחליטה.

print(type(50))       # <class 'int'>
print(type(12.5))     # <class 'float'>
print(type("Sword"))  # <class 'str'>
print(type(3 > 2))    # <class 'bool'>
לזכור: type() אומר מה הטיפוס. int(), float() ו-str() ממירים מטיפוס לטיפוס. ו-input() תמיד מחזיר str, גם כשמקלידים מספר.
2

מעבדה: קונים בחנות של משחק

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

נסו את אלה:

הריצו בעצמכם

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

3

טעויות שכולם עושים

input מחזיר טקסט

מקלידים 12, אבל input() מחזיר את הטקסט "12". אי אפשר לחבר לטקסט מספר. ממירים קודם עם int.

✗ שגיאה
age = input()
print(age + 1)
✓ נכון
age = int(input())
print(age + 1)

"5" + "3" זה לא 8

בין מחרוזות, + מדביק. לכן יוצא 53. אין שגיאה, וזה מה שמבלבל.

✗ יוצא 53
print("5" + "3")
✓ יוצא 8
print(5 + 3)

טקסט ועוד מספר

אי אפשר להדביק מספר לטקסט עם +. הופכים את המספר לטקסט עם str, או מפרידים בפסיק.

✗ שגיאה
print("Score: " + 10)
✓ נכון
print("Score: " + str(10))
print("Score:", 10)

= ו-== הם לא אותו דבר

= שם ערך במשתנה. == רק שואל אם שני ערכים שווים, ונותן True או False. הוא לא משנה כלום.

✗ score לא משתנה
score == 10
✓ עכשיו score הוא 10
score = 10

שמות של משתנים

בלי רווחים, בלי להתחיל בספרה. אות גדולה וקטנה הן שונות: Score ו-score הם שני משתנים.

✗ שגיאה
my score = 5
2nd = 4
✓ נכון
my_score = 5
second = 4
4

דוגמה פתורה, צעד אחרי צעד

מקלידים 21. מה התוכנית תדפיס? נחשו לפני כל שורה, ושימו לב להבדל בין text, שהוא str, לבין number, שהוא int.

5

תרגול

6

שאלות שכולם שואלים

מה ההבדל בין int ל-float בפייתון?

int הוא מספר שלם, כמו 7. float הוא מספר עם נקודה עשרונית, כמו 7.5 או 7.0. חילוק עם / תמיד נותן float, וחילוק עם // נותן מספר שלם. נסו במעבדה.

למה input מחזיר טקסט גם כשמקלידים מספר?

כי פייתון לא יודע מה תקלידו: אולי מילה, אולי מספר. לכן הוא תמיד מחזיר str. אם צריך מספר, כותבים int(input()) או float(input()).

איך בוחרים שם טוב למשתנה?

שם שמספר מה יש בפנים: coins עדיף על x. משתמשים באותיות באנגלית, בספרות ובקו תחתון, בלי רווחים, ולא מתחילים בספרה. תרגלו למטה.