Matemaatilised avaldised

Matemaatika on iga tehnikavaldkonna põhialus. Matemaatiliste avaldisteta effektiivselt programmeerida ei saa. Esitame mõned kõige kasulikumad matemaatilised operaatorid ja tehted.

Elementaarsed matemaatilised tehted

+, *

Nagu tavaliselt, operaatorit + kasutatakse aritmeetilisel liitmisel, kui tegemist on arvudega:

print(5 + 6)  # --> 11
print(100 + 3458)  # --> 3558

Liita saab ka teisi andmetüüpe, kuid siis on plussmärgil pisut teine tähendus. String-ide puhul kasutatakse plussmärki nende omavaheliseks ühendamiseks ehk sidurdamiseks (concatenation). Samamoodi saab ühendada ka liste ja ennikuid.

# Concatenating three string into one
print("Hello " + "World" + "!")  # --> Hello World!

# Same with lists and tuples
print(["First", "List"] + ["Second", "List"] + ["Third"])  # --> ['First', 'List', 'Second', 'List', 'Third']

print(("First", "List") + ("Second", "List") + ("Third",))  # --> ('First', 'List', 'Second', 'List', 'Third')

* operaator võimaldab arve omavahel korrutada.

print(5 * 6)  # --> 30
print(1234 * 5677)  # --> 7005418

Lisaks sellele on see sarnaselt + operaatorile rakendatav mõnedele teistele andmetüüpidele:

print("Hello" * 3)  # --> HelloHelloHello
print(["Some", "List"] * 4)  # --> ['Some', 'List', 'Some', 'List', 'Some', 'List', 'Some', 'List']

-, /, //, **, %

-- märki kasutatakse arvude aritmeetilisel lahutamisel.

print(5 - 6)  # --> -1
print(50 - 25)  # --> 25

/- märki kasutatakse arvude jagamisel. Kui esimene arv ei jagu teise arvuga nii, et vastuseks on täisarv, siis vastuseks on reaalarv, kus punktiga on eraldatud arvu täisosa ja murdosa.

print(10 / 5)  # --> 2
print(20 / 3)  # --> 6.666666666666667
print(4 / 0)  # --> ZeroDivisionError: division by zero

// Sama jagamine, kuid antud juhul vastuseks on alati täisarv. Kui esimene arv ei jagu teise arvuga, vastus ümardatakse alla.

print(20 / 3)  # --> 6.67
print(20 // 3)  # --> 6

print(15 / 8)  # --> 1.875
print(15 // 8)  # --> 1

** – selliselt esitatakse astendamise operaator.

print(1 ** 3)  # --> 1
print(3 ** 2)  # --> 9
print(4 ** 5)  # --> 1024

% ehk Modulo

Modulo on väga kasulik operaator, mille abil saab arvutada jääki, mis tekib kahe arvu jagamisel. Jäägi arvutamine toimub järgmiselt: olgu meil kaks arvu, 14 ja 3. Soovime teada nende arvude jagatise jääki. Esialgu leiame arvu, mille korrutamisel 3-ga saame arvu, mis on kõige lähem 14-le. Tõenäoliselt see on 4, kuna korrutamisel 5-ga saame juba 15, mis on suurem kui 14. Ehk viimane sobiv arv, mida saab saada 3 korrutamisel täisarvuga ja mis on väiksem kui 14, on 12. Ja jäägiks on sel juhul 14 - 12 = 2. Siis öeldakse, et 14 / 3 = 4, jäägiga 2.

print(15 % 3)  # --> 0
print(0 % 2)  # --> 0
print(121 % 4)  # --> 1
print(2 % 33)  # --> 2
print(55 % 1223)  # --> 55

Keerulisemad matemaatilised tehted

Kui on vaja kasutada keerulisemat matemaatikat, näiteks trigonomeetrilisi valemeid, spetsiifilist ümaradamist jm, siis tuleb importida spetsiaalne sisseehitatud moodul nimega math.

Ümardamine

round(x[, ndigits])

Ümardab arvu x, ndigits komakoha täpsusega, kui ndigits pole määratud, siis ümardab täisarvuni.

round(2) # 2
round(2.1) # 2
round(2.6) # 3
round(2.16, 1) # 2.2
round(12, -1) # 10
math.ceil(x)

Ümardab arvu kõige väiksemaks täisarvuks, mis on x suhtes võrdne või suurem.

from math import ceil
ceil(2) # 2
ceil(2.1) # 3
ceil(2.6) # 3
math.floor(x)

Ümardab arvu kõige suuremaks täisarvuks, mis on x suhtes võrdne või väiksem.

from math import floor
floor(2) # 2
floor(2.1) # 2
floor(2.6) # 2

Astendamine

math.sqrt(x)
Tagastab arvu x ruutjuure.
math.pow(x, y)
Tagastab x astmel y väärtuse.
math.log(x, base)
Tagastab x logaritmi alusel base väärtuse.
math.log10(x)
Tagastab x logaritmi astmel 10 väärtuse.
math.exp(x)
Tagastab e astmel x.

Trigonomeetrilised funktsioonid

Nõuanne

Trigonomeetrilised funktsioonid kasutavad radiaane mitte kraade

math.sin(x)
Tagastab nurga x siinuse.
math.cos(x)
Tagastab nurga x koosinuse.
math.tan(x)
Tagastab nurga x tangenti.
math.asin(x), math.acos(x), math.atan(x)
Arkusfunktsioonid. sin, cos, tan pöördtehted.
import math

print(math.sin(math.pi / 2))  # --> 1.0
print(math.cos(math.pi * 5))  # --> -1.0
print(math.tan(math.pi / 4))  # --> 0.9999999999999999

Nurga teisendused

math.degrees(x)
Teisendab nurga x radiaanidest kraaditesse.
math.radians(x)
Teisendab nurga x kraaditest radiaanidesse.
from math import radians, degrees, pi

rad = radians(45)
print(rad)  #  -> 0.7853981633974483

deg = degrees(rad)
print(deg)  # -> 45.0

Konstantid

math.pi
π = 3.141592…
math.tau
τ = 6.283185…
math.e
e = 2.718281…