Python 3/Python-tulkki


Python on tulkattava kieli. Ohjelmien suorittamiseen käytetään Python-tulkkia, joka suorittaa ohjelman. Python-tulkkia voi käyttää myös interaktiivisesti. Sitä käsitellään seuraavassa luvussa.

Tässä osassa käsitellään joitakin tärkeimpiä tulkin parametreja. Esimerkeissä on komentokehotteena Bash, mutta tulkki toimii muissa komentokehotteissa samalla tavalla.

Käynnistäminen ilman parametreja käynnistää interaktiivisen istunnon.

$ python

Järjestelmästä riippuen voi Python 3 olla myös nimellä python3.

$ python3

Tämä kirja käsittelee Python 3:a, joten varmista, että suoritettava tiedosto python on suurimmalta versionumeroltaan 3.

Kun parametriksi annetaan ohjelmatiedsto, suoritetaan tiedosto ja lopetetaan.

$ python ohjelma.py

Huomaa, että mahdolliset Python-tulkille annettavat parametrit annetaan ennen ohjelmatiedosta, ja ohjelmatiedostolle annettavat sen jälkeen.

$ python -i ohjelma.py 1 2 3

Parametri -V tulostaa Pythonin version.

$ python -V
Python 3.9.7

Parametri -i:llä toisena parametrina annettu ohjelma suoritetaan ja sen jälkeen avataan interaktiivinen istunto samassa ympäristössä.

$ python -i ohjelma.py

-O ja -OO

muokkaa

Optimoi ajettavan koodin poistamalla siitä assert ja __debug__-ehtolauseet (ks. osa assert ja __debug__). -OO poistaa lisäksi ohjetekstit. Kun ohjelma ajetaan tuotannossa käytetään yleensä jompaa kumpaa. Kehitysvaiheessa taas ei tulisi käyttää kumpaakaan.

$ python -O oma_ohjelma.py

-c <koodi>

muokkaa

Suorittaa parametrina annetun koodin. Esimerkiksi alla oleva koodi lukee syötteestä numeroita ja summaa ne yhteen (kun painat ctrl-D). Koodirivit voi erottaa puolipisteellä (;).

$ python -c "import sys; print('Tulos:', round(sum(map(lambda line: float(line), sys.stdin.readlines())), 2))"
600
15.30
21
69.90
Tulos: 706.2

Tämä tulostaa annetun merkin (viimeinen parametri) HTML-heksadesimaalientiteetin.

$ python -c "import sys; print('&#%x;' % (ord(sys.argv[1]),))" '*'
&#2a;

-m <moduuli>

muokkaa

Suorittaa annetun moduulin. Moduuli nimi annetaan kuten import-lauseella ja se voi olla missä tahansa mistä moduuleja etsitään. Riippuu moduulista onko sitä mielekästä käyttää tällä tavalla.

Esimerkiksi timeit-moduulilla voi vertailla Python-lauseiden suoritusaikoja.

$ python -m timeit '"-".join(str(n) for n in range(100))'
10000 loops, best of 5: 30.9 usec per loop

Muita -m-parametrilla käytettäviä moduuleja ovat mm. pip (ks. Pakkaus » Kolmansien osapuolten pakkaukset) ja venv (ks. Pakkaus » Virtuaaliympäristöt).