מחברת 1 - תרגול: "הלולאה לא רצה" - תשובה בfloat במקום int

היי כולם,

בתרגיל הזה אני מקבל את התוצאה הנכונה אבל היא כתובה בצורה “מוזרה”.
זה מה שאני מקבל:

8
4.0
2.0
1.0
End of the program

זה “קצת” משגע אותי שהתוצאה הראשונה היא int והבאות הן float. (בדקתי בעזרת הדפסת type(i) כל סבב של הלולאה).

אני יכול להוסיף פקודה בשורה שבה אני עושה פעולה מתמטית על i לפני החזרה לסבב הבא של הלולאה (פעולה שתחייב את i להיות int) אבל זה נראה לי לא אלגנטי ולא הכרחי. נראה לי שאני מפספס משהו בסיסי יותר. אפשר הכוונה פה?

תודה מראש!

אם אתה מבצע פעולת חילוק (גם אם זה מספרים שלמים) זה מחזיר float

לייק 1

אם אתה רוצה אתה יכול לכתוב דבר כזה -
if int(num) == num:
num = int(num)
ואז במקרה והמספר עגול אז הוא יהפוך לטיפוס מסוג int

לייק 1

תוכל לבצע פשוט חלוקת שלמים מוצהרת: a // b

2 לייקים