Python 3/Interaktiivinen Python-tulkki


Python-tulkin voi käynnistää käyttöjärjestelmän komentotolkista komennolla

$ python3

Interaktiiviseen tulkkiin voi kirjoittaa komentoja, jotka tulkki toteuttaa saman tien ja tulostaa tuloksen.


Jos haluat suorittaa tiedoston ensin ja sen jälkeen jatkaa interaktiivisesti Python-tulkissa, käytä parmetria -i.

$ python3 -i tiedosto.py

Tiedostossa määritetyt funktiot, muuttujat yms. ovat tämän jälkeen käytössä interaktiivisessa tulkissa. Voit myös ladata tiedoston import-lauseella tulkista. Esimerkiksi

>>> import funktiot

lataa ja suorittaa tiedoston funktiot.py hakemistosta, josta tulkki käynnistettiin.

Komentotulkkiin kirjoitettu Python-koodi aloitetaan tässä oppaassa aina kolmella kulmasulkeella (>>>) tai kolmella pisteellä (...), jos monirivinen komento jatkuu. Tulkin vastaus tulee näiden jälkeen ilman etumerkkejä.

>>> 3 + 1
4
>>> for a in ["world", "galaxy", "universe"]:
...     print("Hello", a)
... 
Hello world
Hello galaxy
Hello universe

Edellisen komennon tuloksen saa käyttöön muuttujan _ (alaviiva) kautta.

>>> 3 + 1
4
>>> _ * 2
8

Huomaa, että tämä on komentotulkin ominaisuus. Tiedostosta suoritettavassa Python-ohjelmassa muuttuja _ ei ole käytössä.

Tulkkiin voi tuoda moduuleita import-lauseella samalla tavalla kuin ohjelmissakin.

>>> import datetime
>>> datetime.date.today()
datetime.date(2022, 8, 22)

Perustulkin lisäksi on olemassa myös muita lisäominaisuuksia sisältäviä Python-tulkkeja kuten IPython ja selaimessa käytettävä työkirja Jupyter Notebook.

Verkossa on monia selaimessa käytettäviä Python-tulkkeja, esimerkiksi www.python.org/shell/.

Ohje help-funktiolla

muokkaa

Lausekkeen ohjeen saa avattua help-funktiolla. Help-funktiolle annetaan parametriksi kohde, jonka ohje halutaan nähdä. Kohde voi olla mikä tahansa Python-olio esimerkiksi funktio, olio, muuttuja tai moduuli. Esimerkiksi sum-funktion ohje:

>>> help(sum)
Help on built-in function sum in module builtins:

sum(iterable, /, start=0)
    Return the sum of a 'start' value (default: 0) plus an iterable of numbers
    
    When the iterable is empty, return the start value.
    This function is intended specifically for use with numeric values and may
    reject non-numeric types.

Jos help-funktion parametrissa on lauseke, näytetään ohje lausekkeen tuloksena saadulle oliolle. Siten ohjeen saa näytettyä myös vaikka et tietäisi olion nimeä. Esimerkiksi, jos haluamme nähdä mitä voimme tehdä re.match-funktion palauttamalla arvolla tietämättä sen nimeä. (Moduulissa re on säännöllisten lausekkeiden käsittelyyn tarkoitettuja funktiota.)

>>> import re
>>> m = re.match(r"[a-z]+[0-9]+", "sana12")
>>> help(m)
Help on Match object:

class Match(builtins.object)
 |  The result of re.match() and re.search().
 |  Match objects always have a boolean value of True.
 |  
 |  Methods defined here:
 |  
 |  __copy__(self, /)
 |  
 |  __deepcopy__(self, memo, /)
 |  
 |  __getitem__(self, key, /)
 |      Return self[key].
– –

Help-funktiolla näkee myös omien funktioiden ja olioiden ohjeet, jos niihin on liitetty ohjeteksti. Ohjetekstin lisäämistä käsitellään osassa Luokka » Ohjeteksti.

Muita funktioita

muokkaa

Toinen hyödyllinen funktio tutkittaessa ympäristössä olevia oliota on dir, joka palauttaa kaikki olion jäsenet listana.

>>> dir(m)
['__class__', '__class_getitem__', '__copy__', '__deepcopy__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'end', 'endpos', 'expand', 'group', 'groupdict', 'groups', 'lastgroup', 'lastindex', 'pos', 're', 'regs', 'span', 'start', 'string']

Funktiolla type näkee parametrina annetun olion tyypin.

>>> type(m.group)
<class 'builtin_function_or_method'>
>>> type(m.pos)
<class 'int'>