Pythonissa on mahdollista muuttaa eri tyyppisiä muuttujia toisiksi esim. kokonaislukuja merkkijonoiksi ja tätä varten on useita sisäänrakennettuja funktioita. Tässä on lähinnä funktioita muunnoksille merkkijonosta kokonaislukuihin ja toisinpäin.
 
Funktio str muuntaa minkä muuttujan merkkijonoksi; numeeriset muuttujat vain muunnetaan vastaavaan teksti esitykseen. Kokonaisluvut voi myös muuntaa binääri, oktaali ja heksadesimaali esityksiin funktioilla bin, oct ja hex.

>>> str(1000)
'1000'
>>> str(-23.9e7)
'-239000000.0'
>>> bin(999)
'0b1111100111'
>>> oct(200)
'0o310'
>>> hex(2011)
'0x7db'
>>>

Muita muuttujia voi muuntaa kokonaisluvuiksi ja liukuluvuiksi funktioilla int ja float. Kompleksilukuja saadaan funktiolla complex, joka ottaa joko kaksi muuta numeerista muuttujaa tai merkkijonon. Numeeriseksi muuttujaksi muunnettavan merkkijonon tulee sisältää Pythonin tunnistava numeerista muuttujaa vastaava ilmaus.

>>> int("345")
345
>>> int(89.01)
89
>>> float(9)
9.0
>>> complex("-3.4+2j")
(-3.4+2j)
>>> complex(2.1, -900)
(2.1-900j)
>>> float("3.78e10")
37800000000.0
>>>

Funktio int muuntaa merkkijonon kokonaisluvuksi normaalisti kymmenlukujärjestelmää hyödyntäen, mutta funktiolle voi välittää toisen parametrin, joka määrittää käytetyn kantaluvun. Pythonissa funktioille ei tarvitse antaa kaikkia parametreja, jos niille oon määritelty vakio arvo, joka int funktion tapauksessa on 10. Toisen parametrin täytyy olla vähintään kaksi ja enintään 36 - kymmentä suuremmilla kantaluvuilla käytetään lisänä kirjaimia a - z.

>>> int("10100101101", 2)
1325
>>> int("ff", 16)
255
>>> int("34agy", 36)
5239042
>>>

Yksinkertaisilla säänöillä muut muuttuja tyyppien arvot voidaan muuttaa myös totuusarvoiksi. Kaikilla numeerisilla muuttujilla nolla on epätosi ja mikä tahansa muu arvo on tosi. Merkkijono on tyhjänä epätosi ja muuten tosi. Muuttuja muunnetaan booleaniksi funktiolla bool().

>>> bool(1)
True
>>> bool(0)
False
>>> bool(-1.7)
True
>>> bool(0.0)
False
>>> bool("moi")
True
>>> bool("")
False

Totuusarvo voidaan muuttaa myös numeerisiksi muuttujiksi tai merkkijonoiksi. Toden (True) numeerinen arvo on yksi ja merkkijono "True". Epätoden (False) numeerinen arvo on nolla ja merkkijono vastavasti "False".

>>> int(True)
1
>>> str(True)
'True'
>>> int(False)
0
>>> str(False)
'False'
>>> 

Lisäksi on vielä muita käteviä sisäänrakennettuja funktioita, jotka eivät ole varsinaisia muunnos funktioita, mutta antavat numeerisia arvoja merkkijonosta ja päinvastoin. Funktiot ord ja chr muuntavat kokonaisluvun unicode koodauksen mukaiseksi merkiksi ja päin vastoin. Funktio len palauttaa sille annetun merkkijonon pituuden.

>>> ord("a")
97
>>> chr(120)
'x'
>>> len("abcdefg")
7
>>>


  • No labels
You must log in to comment.