דילוג לתוכן המרכזי
מודול 4 · שיעור 3 מתוך 415/36 בקורס~10 min
שיעורי מודול (3/4)

מספרים ומודול המתמטיקה

פייתון מבחין בין שני סוגים מספריים בסיסיים: int (דיוק שרירותי מספרים שלמים - ללא גלישה) ו-float (נקודה צפה 64 סיביות, כפולה דיוק).

Python
type(42)       # <class 'int'>
type(3.14)     # <class 'float'>
type(10 ** 100)  # <class 'int'>   — interi grandi a piacere

אופרטורים אריתמטיים

אופהמשמעותדוגמהתוצאה
+תוספת2 + 35
-חיסור5 - 23
*מוצר4 * 312
/חלוקה אמיתית10 / 42.5
//חלוקה מספר שלם10 // 42
%modulo (השאר)10 % 31
**כוח2 ** 101024

אזהרה: / מחזיר תמיד float, אפילו עם שני מספרים שלמים (10 / 2 מחזירה 5.0, לא 5). לחלוקת מספרים שלמים השתמש ב-//.

Python
10 / 4    # 2.5
10 // 4   # 2
-7 // 2   # -4   (arrotonda verso il basso, non verso lo zero)

מובנים מספריים

Python
abs(-5)               # 5
min(3, 1, 2)          # 1
max([3, 1, 2])        # 3   (su iterabile)
round(3.7)            # 4
round(3.14159, 2)     # 3.14
sum([1, 2, 3])        # 6

המודול math

Python
import math
math.pi               # 3.141592653589793
math.sqrt(16)         # 4.0
math.floor(3.9)       # 3   (verso meno infinito)
math.ceil(3.1)        # 4   (verso più infinito)
math.log(math.e)      # 1.0
math.gcd(12, 18)      # 6

מפל הצוף

מצופים הם קירובים בינארים: 0.1 + 0.2 לא בדיוק שווה 0.3.

Python
0.1 + 0.2           # 0.30000000000000004
0.1 + 0.2 == 0.3    # False !

להשוואות בטוחות השתמש ב-math.isclose(a, b) או, בהקשרים פיננסיים, ב- מודול decimal.

דיוק ציפה והמודול העשרוני

צפים ב-Python מיושמים כמספרי נקודה צפה בעלת דיוק כפול (תקן IEEE 754). כתוצאה מכך, חישובים כמו 0.1 + 0.2 אינם מניבים בדיוק 0.3, אלא 0.30000000000000004. אם אתה דורש דיוק מתמטי מוחלט (למשל עבור יישומים פיננסיים), השתמש במודול decimal של הספרייה הרגילה.

נסה את זה

פעילות גופנית#python.m4.l3.e1
ניסיונות: 0טוען...

בהינתן `seconds = 3725`, מחשב `שעות`, `דקות`, `נותרות_שניות` באמצעות // ו-%. הערך את הטפול `(שעות, דקות, שניות_נותרות)`.

טוען עורך...
הצג רמז

// עושה חלוקה שלמים, % את השאר.

הפתרון זמין לאחר 3 ניסיונות

סקירת התרגיל

פעילות גופנית#python.m4.l3.e2
ניסיונות: 0טוען...

בהינתן `רדיוס = 5`, חשב את שטח המעגל ב`שטח` באמצעות math.pi. הערך 'שטח' מעוגל ל-2 עשרונים עם עגול.

טוען עורך...
הצג רמז

math.pi * רדיוס ** 2

הפתרון זמין לאחר 3 ניסיונות

אתגר נוסף

פעילות גופנית#python.m4.l3.e3
ניסיונות: 0טוען...

Import the `math` module. Calculate the square root of `16` using `math.sqrt`, add the result to the rounded value of `3.74` (using `round()`), and store the final sum in `total_val`. Finally, evaluate the variable.

טוען עורך...
הצג רמז

math.sqrt(16) מחזיר 4.0. round(3.74) מחזיר 4. סכם אותם והקצה ל-total_val.

הפתרון זמין לאחר 3 ניסיונות