Dlaczego tak
Liczby 0.1 i 0.2 typu float są zapisane w systemie dwójkowym zmiennoprzecinkowym tylko w przybliżeniu, więc ich suma to 0.30000000000000004 i nie jest równa 0.3. Liczby całkowite typu int są przechowywane dokładnie, więc 1 + 2 == 3 daje True. Odpowiedź True True zakłada, że arytmetyka zmiennoprzecinkowa jest dokładna — dlatego wartości typu float porównuje się z tolerancją, np. funkcją math.isclose.