Matemaattiset operaatiot
461 531 626
Pythonissa matemaattiset perustoiminnot ovat kieleen sisäänrakennettuna. Lisäksi Pythonissa on laajennuksina käytettävissä matemaattisia moduuleita, kuten math-moduuli ja sen kompleksilukuja käyttävä vastine cmath sekä useita erikoistuneita matemaattisia kirjastoja.
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 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.
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 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 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
Tee ohjelma, joka tulostaa annetun minuuttimäärän tunteina ja minuutteina alla esitettyyn tapaan!
Anna minuutit: 132
Tunnit: 2
Minuutit: 12
Vinkki: print()-funktiolla voi tulostaa monta asiaa yhdellä kertaa, kun erottaa ne toisistaan pilkulla - esimerkiksi print("Tunnit",tunnit) tulostaa yhdelle riville merkkijonon Tunnit ja muuttujan tunnit sisällön. Väliin tulostuu aina yksi välilyönti.
Muokkaa edellisen tehtävän ohjelmaa niin, että vastaus tulostuu muodossa
132 minuuttia on 2 tuntia 12 minuuttia
Potenssiin korotus tapahtuu **-merkinnällä:
>>> 5 ** 2 # 5 korotettuna toiseen potenssiin 25 >>> 2 ** 7 # 2 korotettuna 7:nteen potenssiin 128