Tietokoneiden näyttöjä, joissa näkyy kuvaa automaatiolaboratorion laitteistosta. Monitoreiden takana näkyy sama laitteisto kuin kuvissa.

timohei.net / Opintojaksot / Opintojaksot / Älykkään sähkölaitteen projekti / Python-ohjelmointi /
Matemaattiset operaatiot

Komentotulkkia voi käyttää sellaisenaan yksinkertaisena laskimena. Komentotulkissa ei välttämättä tarvitse edes käyttää print-komentoa, vaan laskutoimitukset voi syöttää tulkkiin sellaisenaan:

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5.0*6) / 4
5.0
>>> 8 / 5.0
1.6

Peruslaskutoimitukset

Peruslaskutoimitukset toimivat kuten odottaa saattaa. Laskujärjestys on yleisten sääntöjen mukainen, eli kerto- ja jakolaskut suoritetaan ensin ja sitten yhteen- ja vähennyslaskut, kaikki vasemmalta oikealle. Sulkuja voi käyttää laskutoimitusten ryhmittelyyn ja laskujärjestyksen muuttamiseen.

Peruslaskutoimitusten lisäksi on käytettävissä myös tasajako eli katkaiseva jakolasku //, jakojäännös eli modulo % ja potenssiin korotus x**y.

Jakolasku toimii Python 2:ssa ja 3:ssa eri tavalla

Jakolaskun tulos on Python 3:ssa (eli mm. versiossa 3.8.0) aina liukuluku eli tyyppiä float - vaikka kumpikin jakolaskun operandi olisi kokonaisluku (int). Tämä voi tuntua itsestään selvältä, mutta Python 2:ssa (eli esimerkiksi versiossa 2.7.13) kahden kokonaisluvun (int) jakolasku antoi tulokseksi kokonaisluvun (int). Kokonaisluku jaettuna liukuluvulla antaa Python 2:ssakin tulokseksi liukuluvun:

Python 3.8.0 >>> 10/3    # Python 3:ssa jakolaskun tulos on liukuluku...
3.3333333333333335
Python 3.8.0 >>> 10/3.0  # ...riippumatta operandien tyypeistä.
3.3333333333333335
Python 2.7.13 >>> 10/3   # Python 2:ssa kahden kokonaisluvun välinen
3                        # jakolasku antaa tulokseksi kokonaisluvun.
Python 2.7.13 >>> 10/3.0 # Jos yksikin operandeista on liukuluku,
3.3333333333333335       # on tuloskin liukuluku.

Tasajako

Tasajako tarkoittaa jakolaskua, jonka tulos pyöristetään kokonaisluvuksi alaspäin. Huomaa

>>> 10//3   # Operandit kokonaislukuja
3
>>> 10//3.0 # Vähintään yksi operandi desimaaliluku
3.0
>>> 10//-3  # Negatiivinen operandi
-4

Jakojäännös

Jakojäännös eli "tasajaon yli jäävä osuus" saadaan %-operaattorilla:

>>> 17 % 3
2
>>> 17 // 3
5
>>> 5 * 3 + 2 # Tarkistus: tasajaon tulos * jakaja + jakojäännös
17

Potenssiin korotus

Potenssiin korotus tapahtuu **-merkinnällä:

>>> 5 ** 2  # 5 korotettuna toiseen potenssiin
25
>>> 2 ** 7  # 2 korotettuna 7:nteen potenssiin
128
Päivitetty 28.8.2022

<<  Edellinen
(5) Muuttujien tyypit
Sivu 6/13Seuraava >>
(7) Merkkijonojen käsittely
© Timo Heikkinen | timo piste heikkinen at oamk piste fi