Tłumaczenie wzorów: matematyka → Python
Podręcznik zapisuje wzory inaczej niż Python. Przeanalizujmy zasady tłumaczenia — oraz najczęstsze błędy w tym tłumaczeniu.
Wzory w podręcznikach matematyki są zapisywane inaczej niż kod Python – mnożenie jest często stosowane ogólnie nie pisz, stopień jest podniesiony ponad linię, dzielenie jest rysowane linią. Przetłumacz takie wzory na Python trzeba być ostrożnym.
Tabela Tłumaczeń
| W matematyce | W Python | Częsty błąd |
|---|---|---|
2 * x | pisać 2x jest SyntaxError, mnożenie nigdy nie jest implikowane | |
x ** 2 | pisać x^2 — zadziała, ale da zupełnie inną liczbę! | |
(a + b) / c | pisać a + b / c – dzieli się tylko b, nie całość | |
x ** 0.5 lub math.sqrt(x) | zapomnieć, że pierwiastek jest również stopniem (0,5) | |
math.pi * radius ** 2 | zapomnieć zaimportować math, albo pisać pi zamiast math.pi | |
a * (b + c) | pisać a(b + c) — Python zdecyduje, że a to funkcja i spróbuje ją nazwać | |
(a + b) / (c + d) | pisać a + b / c + d – tylko b zostanie podzielone na c |
^ czasem oznacza podniesienie stopnia do pewnego stopnia. W Python ^ jest zupełnie innym operatorem (bitowo wyłączny OR, przeanalizujemy go w rozdziale o bitach): 5 ^ 3 równa się 6, nie 125. Do potęgowania zawsze używaj **.print(5 ** 3) #125 – Stopień
print(5 ^ 3) #6 to zupełnie inna operacja!
Od matematyki przez geometrię do Python
Tabela pokazuje przesunięcie linia po linijce. Ale wzór istnieje trzeci, najbardziej ilustracyjny poziom — sama figura geometryczna, którą formuła opisuje:
import math
radius = 5
ploshad = math.pi * radius ** 2
print(round(ploshad, 2)) # 78.54
** jest już stosowane tylko do radius, i nie na cały wyraz twarzy math.pi * radius (mnożenie i moc to różne poziomy priorytetu, moc jest wyższa).Dlaczego nawiasy wokół sumy są obowiązkowe
Wracamy do ułamka spojrzeć na to z trzech stron: jako formułę, jako drzewo obliczeniowe i jako kod.
Drzewo pokazuje to samo co kreska ułamka: a + b —
jednolity blok, który w całości staje się licznikiem. W Python kreski nie ma, więc tę
grupę trzeba wyraźnie oznaczyć — za pomocą nawiasów okrągłych:
a, b, c = 8, 4, 3
# POPRAWNIE – nawiasy odtwarzają linię ułamku:
print((a + b) / c) # 4.0
# NIEPRAWIDŁOWO – Tylko b: jest dzielone bez nawiasów
print(a + b / c) # 9.333... to a + (b / c), zupełnie inna formuła!
Przykład tłumaczenia: wzór na średnią
Wzór na średnią trzech liczb jest przeliczany na Python według tej samej zasady — cała kwota musi być podzielona w nawiasach przed podziałem:
a, b, c = 4, 7, 9
srednee = (a + b + c) / 3
print(srednee) # 6.666...