פייתון

נושא

טיפוסים והסבה

ארבעה טיפוסים, ואיך עוברים ביניהם.

מגיע מיחידות: 2, 3, 6, 8

בעמוד הזהארבעת הטיפוסיםהסבהאיפה זה תופס אתכםלכתוב טובבדיקה עצמית

ארבעת הטיפוסים

טיפוס דוגמה הערה
str "Python", 'a' כל דבר במרכאות, גם "5"
int 2, -7 שלם
float 7.25, 7.0 עשרוני. 7.0 הוא float ולא int
bool True, False אות גדולה. כל מספר שאינו 0 נחשב True

בודקים טיפוס עם type():

>>> type(7.0)
<class 'float'>
>>> type("7")
<class 'str'>

הסבה

כותבים את הטיפוס הרצוי, ובסוגריים את הערך:

>>> int("5") ** 2
25
>>> float("5")
5.0
>>> str(3) + str(3)
'33'
>>> bool(0)
False

איפה זה תופס אתכם

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

>>> "5" ** 2
Traceback (most recent call last):
  ...
TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'int'

+ תלוי בטיפוס. על מספרים הוא חיבור, ועל מחרוזות שרשור. 3 + 3 הוא 6, ו-"3" + "3" הוא "33".

math.sqrt מחזירה float. math.sqrt(9) הוא 3.0.

לכתוב טוב

משתנה שהתחיל כמספר לא עובר להצביע על מחרוזת. זה אפשרי, וזה bad practice: פעולה שמתאימה לטיפוס אחד נשברת על השני.

בדיקה עצמית

  1. מה הטיפוס של 7.0? ושל "7.0"?
  2. מה יודפס: print(int("4") + 1)?
  3. למה input("age: ") + 1 נכשל?

תשובות. 1: float, ו-str. 2: 5. 3: input מחזיר מחרוזת, ואי אפשר לחבר מחרוזת ומספר. צריך int(input("age: ")) + 1.