You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Current »

Pythonin numeerisiin muuttujiin kuuluu kokonais-, liuku- ja kompleksiluvut. Kaikille numeerisille muuttujille voidaan tehdä matemaattisia laskutoimituksia, loogisia operaatioita ja vertailuja, mutta vain kokonaisluvuille voidaan tehdä ns. bittioperaatioita. Lisäksi on standardikirjaston matematiikka moduulit, jotka sisältävät monimutkaisempia funktioita.
 

Yksinkertaisimmillaan kokonaisluku literaali kirjoitetaan luettelemalla numeerinen arvo luvuilla 0;sta 9;ään ja alussa voi olla negatiivisuutta ilmaiseva miinus merkki -. Tällöin arvo käsitellään desimaali eli kymmenluku järjestelmän mukaan. Ilmaus ei vain saa alkaa nollalla paitsi arvon nolla tapauksessa. Tässä taas esimerkkejä interaktiivisessa ohjelmointi tilassa.

>>> 102
102
>>> 56
56
>>> 0
0
>>> 0123 #virhe
SyntaxError: invalid token
>>>

Kymmenluku järjestelmän lisäksi kokonaisluvun voi ilmaista eri lukujärjestelmillä käyttäen niille varattuja etuliitteitä. 0b binääriluvuille (0 ja 1), 0o oktaaliluvuille (numerot 0 - 7) sekä 0x heksadesimaaliluvuille (numerot 0 - 9 ja kirjaimet a - f). Kirjainten koolla ei ole merkitystä näissä ilmauksissa. Interaktiivisessa ohjelmointi tilassa kokonaisluvut tulostetaan aina desimaali arvona.

>>> 0b1011
11
>>> 0o72
58
>>> 0x4f
79
>>> 0X4f
79
>>> 0x4F
79
>>>

Kokonaisluvut eivät voi sisältää ykköstä pienempiä osia, mutta toisin kuin useimmissa alemmantason ohjelmointikielissä, kokonaisluvun koolla ei ole ylärajaa. Usein kokonaislukuvulle varataan rajallinen määrä muistia arvon säilyttämiseen (esim 32 bittiä), mutta Pythonissa tietyn rajan ylittyessä kokonaisluku muutetaan ns. isoksi kokonaisluvuksi (big int), jolle varataan aina tarpeen vaatiessa muistia arvon kasvaessa. Sivuvaikutus toisin on, että muistia kuluu enemmän ja laskutoimitukset ovat hieman hitaampia.
 
Ohjelmoijan ei periaatteessa tarvitse välittää miten tämä käytännössä toimii, koska Python hoitaa kaiken automaattisesti. Pythonin aiemmassa versiossa tosin täytyi käyttää isoa L kirjainta erotuksena rajallisen kokoisesta kokonaisluvusta, mutta uudemmissa Pythoneissa tämä aiheuttaisi virheen.
 
Liukuluvut toimivat käytännössä reaalilukuina, mutta niiden arvossa on vain rajallinen määrä desimaaleja, minkä takia niissä voi ilmetä kokonaislukuihin verrattuna epätarkkuutta suurilla arvoilla. Liukuluku ilmaus kirjoitetaan kymmenjärjestelmän luvuilla, mutta siinä voi lisäksi olla desimaalipisteellä (huom. ei pilkku) erotettuna desimaalit sekä e kirjaimella erotettu kertaa kymmenpotenssikerroin. Ilman desimaalipistettä ja kymmenpotenssi merkintää lukukäsiteltäisiin tosin kokonaislukuna joten loppuun voi tarvittaessa lisätä .0 erotukseksi kokonaisluvuista.

>>> 10.0
10.0
>>> 23.9
23.9
>>> .9
0.9
>>> 12e3
12000.0
>>> 34.7E23
3.47e+24
>>>

Kompleksiluvut koostuvat kahdesta numeroarvosta, joista toinen on reaali- ja toinen imaginääriosa. Osat voidaan ilmaista sekä kokonais- että liukulukuna, mutta imaginääriosaa merkitsemään tarvitaan lisäksi j, jota ei voida kirjoittaa yksinään, vaan numero arvo tarvitaan ennen j;tä erotukseksi tunnisteista. Osat erotetaan toisistaan plusmerkillä + (tai miinusmerkillä jälkimmäisen osan ollessa negatiivinen. Osien järjestyksellä ei ole väliä.

>>> 10.0j
10j
>>> -1+1j
(-1+1j)
>>> 1j - 1
(-1+1j)
>>> 23.01j
23.01j
>>> -4 +0j
(-4+0j)
>>>

Kuten merkkijonoja numeerisia arvoja voidaan sijoittaa muuttujiin yhtäsuuruus merkillä =.

  • No labels
You must log in to comment.