Rozdział 5 · Pobawmy się liczbami!
Stopnie naukowe i korzenie
Podnoszenie do potęgi i pierwiastkowanie — ten sam obraz geometryczny, odczytany w dwóch kierunkach.
Teraz jest operacja, która ma najpiękniejszy obraz geometryczny ze wszystkich: Dyplom.
Kwadrat liczby to pole kwadratu
x ** 2 to powierzchnia kwadratu z bokiem x:
kvadrat.py
print(4 ** 2) # 16
print(4 ** 3) #64 – Cube: Ten sam pomysł, ale w trzech wymiarach (tom)
Pierwiastek kwadratowy to operacja odwrotna: od pola do boku
Jeżeli znana jest powierzchnia kwadratu, można znaleźć długość boku — to właśnie pierwiastek kwadratowy. Ta sama ilustracja, tylko czytamy ją w odwrotną stronę: mamy liczbę 16 w kwadracie i szukamy boku.
koren.py
print(16 ** 0.5) # 4.0 — stopień 0.5 to pierwiastek kwadratowy
import math
print(math.sqrt(16)) # 4.0 — to samo, ale wyraźnie i zrozumiale dla czytelnika
math.sqrt() czyta się lepiej niż ** 0,5
Obie opcje działają równie poprawnie, ale
math.sqrt(16) natychmiast mówi czytelnikowi kodu: „Oto oni szukają źródła.” 16 ** 0.5 przypomina, że 0,5 to pierwiastek.Trzy sposoby potęgowania — i w czym jest różnica
| Metoda | Co wraca | Przykład |
|---|---|---|
** | int jeśli oba operandy int; w przeciwnym razie float | 2 ** 10 → 1024 |
pow(a, b) | to samo co a ** b | pow(2, 10) → 1024 |
math.pow(a, b) | zawsze float, nawet dla liczb całkowitych | math.pow(2, 10) → 1024.0 |
pow() ma trzeci, opcjonalny argument
pow(a, b, m) liczy (a ** b) % m, ale znacznie szybciej — dla dużych liczb przyspiesza pracę tysiąckrotnie. Jest wykorzystywana na przykład w kryptografii. Na razie wystarczy wiedzieć, że taka możliwość istnieje.Praktyka: Stopnie naukowe i korzenie
Ten sam laptop, który łączy //, % i ** razem — czas ćwiczyć wszystkich operatorów specjalnych naraz