Matemaatilised avaldised
Matemaatika on iga tehnikavaldkonna põhialus. Ilma matemaatiliste avaldisteta efektiivselt programmeerida ei saa. Teeme tutvust kõige kasulikemate matemaatiliste operaatorite ja tehetega.
Elementaarsed matemaatilised tehted
Liitmine
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. Sõne (string)-ide puhul kasutatakse plussmärki nende omavaheliseks ühendamiseks ehk sidurdamiseks (concatenation). Samamoodi saab ühendada ka järjendeid 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')
Korrutamine
*
operaator võimaldab arve omavahel korrutada.
print(5 * 6) # --> 30
print(1234 * 5677) # --> 7005418
Lisaks sellele on *
operaator sarnaselt +
operaatorile rakendatav mõnedele teistele andmetüüpidele:
print("Hello" * 3) # --> HelloHelloHello
print(["Some", "List"] * 4) # --> ['Some', 'List', 'Some', 'List', 'Some', 'List', 'Some', 'List']
Lahutamine
-
märki kasutatakse arvude aritmeetilisel lahutamisel.
print(5 - 6) # --> -1
print(50 - 25) # --> 25
Jagamine
Tavaline jagamine
/
märki kasutatakse arvude jagamisel. Tulemuseks on alati ujukomaarv (float).
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.0
print(20 / 3) # --> 6.666666666666667
print(4 / 0) # --> ZeroDivisionError: division by zero
Täisarvuline jagamine
//
märgiga on tegemist samuti jagamisega, kuid antud juhul on vastuseks alati täisarv (integer).
Kui esimene arv ei jagu teise arvuga, siis saadud vastus ümardatakse alla.
print(20 / 3) # --> 6.666666666666667
print(20 // 3) # --> 6
print(15 / 8) # --> 1.875
print(15 // 8) # --> 1
Pea meeles!
/
märgiga jagamisel on tulemuseks alati ujukomaarv (float). //
märgiga jagamisel on tulemuseks täisarv (int).
print(10 / 5) # --> 2.0
print(type(10 / 5)) # --> <class 'float'>
print(10 // 5) # --> 2
print(type(10 // 5)) # --> <class 'int'>
Astendamine
**
– selliselt esitatakse astendamise operaator.
print(1 ** 3) # --> 1
print(3 ** 2) # --> 9
print(4 ** 5) # --> 1024
Pea meeles!
Astendamise tehted tehakse paremalt vasakule.
Näiteks:
print(3 ** 2 ** 3) # --> 6561
print((3 ** 2) ** 3) # --> 729
Jääk
% ehk 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 14-ga võrdne või sellest võimalikult vähe väiksem. 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
Oluline!
Python jälgib tehete järjekorda.
Näiteks:
print(10 - 2 - 4) # --> 4
print(10 - (2 - 4)) # --> 12
print(2 * 3 + 4) # --> 10
print(2 + 3 * 4) # --> 14
print((2 + 3) * 4) # --> 20
Keerulisemad matemaatilised tehted
Kui programmis on vaja kasutada keerulisemat matemaatikat, näiteks trigonomeetrilisi valemeid, spetsiifilist ümardamist jm, siis tuleb importida spetsiaalne sisseehitatud moodul nimega math
.
Ümardamine
- round(x[, ndigits])
Ümardab arvu
x
,ndigits
komakoha täpsusega, kuindigits
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 ja juurimine
- math.sqrt(x)
Tagastab arvu
x
ruutjuure.- math.pow(x, y)
Tagastab
x
astmely
väärtuse.import math math.sqrt(4) # 2.0 math.sqrt(10) # 3.1622776601683795 math.pow(1, 8) # 1.0 math.pow(2, 3) # 8.0 math.pow(5, 2) # 25.0
Logaritm ja Euleri arv
- math.log(x, base)
Tagastab
x
logaritmi aluselbase
väärtuse.- math.log10(x)
Tagastab
x
logaritmi astmel 10 väärtuse.- math.exp(x)
Tagastab e astmel x.
import math math.log(4, 2) # 2.0 math.log(10, 100) # 0.5 math.log(5, 10) # 0.6989700043360187 math.log10(10) # 1.0 math.log10(100) # 2.0 math.exp(1) # 2.718281828459045 math.exp(3) # 20.085536923187668
Trigonomeetrilised funktsioonid
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
tangensi.- 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 kraadidesse.- 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
Konstandid
- math.pi
π = 3.141592…
- math.tau
τ = 6.283185…
- math.e
e = 2.718281…
Kordamine
Täienda koodi vastava funktsiooniga.
# no pec
import math
# Round number 2.67395 to only two decimals
print(round(2.67395, 2)) # Example
# Return 2 to the power of 12
print()
# Return the square root of 144
print()
# Convert 2 radians into degrees
print()
# Convert 180 degrees into radians
print()
import math
# Round number 2.67395 to only two decimals
print(round(2.67395, 2))
# Return 2 to the power of 12
print(pow(2, 12))
# Return the square root of 144
print(math.sqrt(144))
# Convert 2 radians into degrees
print(math.degrees(2))
# Convert 180 degrees into radians
print(math.radians(180))
test_function("print")
test_function("round")
test_function("print")
test_function("pow")
test_function("print")
test_function("math.sqrt")
test_function("print")
test_function("math.degrees")
test_function("print")
test_function("math.radians")
success_msg("Great job!")