Tulostaminen (print) ja syötteen lukeminen (input)

Tulostaminen print-funktiolla

Pythonissa voi tulostaa tietoa ruudulle print-funktiolla:

# Tulostetaan merkkijono "Terve!"
print("Terve!")

tulostaa:

Terve!

(Funktioiden toimintaperiaatteisiin perehdymme tarkemmin kurssin toisella kierroksella. Nyt ensimmäisellä kierroksella hyödynnämme vain muutamia Pythonin sisäänrakennettuja funktioita, joiden käyttö on yhtä suoraviivaista kuin print-funktion käyttö.)

Otetaan toinen esimerkki, jossa print-funktiolle annetaan useita eri arvoja pilkulla erotettuna. Se tulostaa molemmat arvot niin, että niiden välissä on välilyönti:

# Näin voimme tulostaa laskutoimitusten tuloksia 
print("11*11 on", 11*11)
tulostaa:

11*11 on 121

Laskutoimituksista: Halutessasi voit tehdä laskutoimituksia myös suoraan Spyderin Python-konsolissa. Kokeile kirjoittaa konsoliin esimerkiksi 5*5 ja paina Enter

Isot ja pienet kirjaimet

Pythonissa isot ja pienet kirjaimet ovat merkitseviä. Käsky print on siis eri asia kuin Print tai PRINT.

Käyttäjän syötteen lukeminen input-funktiolla

Käyttäjältä voi kysyä tietoja input-funktiolla:

# Kysytään käyttäjän nimeä
nimi = input("Mikä nimesi on?")
print("Hieno nimi sinulla", nimi)

Lopputulos:

Mikä nimesi on?Marsu
Hieno nimi sinulla Marsu

Esimerkissä siis input-funktiolla kysytään käyttäjältä nimeä ja käyttäjän antama merkkijono tallennetaan muuttujaan nimi.  Sen jälkeen muuttujan arvo voidaan tulostaa print-funktion avulla. Muuttujiin voidaan säilöä tietoa ja niistä kerrotaan lisää seuraavassa luvussa. 

Kysymys ja vastaus tulostuvat selkeämmin, jos lisätään välilyönti merkkijonon loppuun:

nimi = input("Mikä nimesi on? ")
print("Hieno nimi sinulla", nimi)

Lopputulos:

Mikä nimesi on? Marsu
Hieno nimi sinulla Marsu

Kaikkein selkeintä on yleensä käyttää rivinvaihtoa "\n" kysymyksen lopussa

nimi = input("Mikä nimesi on?\n")
print("Hieno nimi sinulla", nimi)

Lopputulos (Huom! Tästä lähtien käyttäjän input-funktiolle antama syöte merkitään ">"-merkillä):

Mikä nimesi on?
> Marsu
Hieno nimi sinulla Marsu

Kolmas esimerkki, jossa kysytään kaksi eri tietoa ja tulostetaan ne molemmat:

nimi = input("Mikä nimesi on?\n")
kaveri = input("Mikä kaverisi nimi on?\n")
print("Mukava tavata", nimi, "ja", kaveri)

Lopputulos:

Mikä nimesi on?
> Marsu
Mikä kaverisi nimi on?
> Jomppa
Mukava tavata Marsu ja Jomppa
Tärkeää: input-funktio palauttaa aina merkkijonon  

input-funktio lukee käyttäjältä aina ns. merkkijonon (engl. string). Tämä koodi:

luku = input("Anna luku niin kerron sen kahdella:\n")
print("Antamasi luku", luku, "kerrottuna kahdella on", 2 * luku)

ei siis annakaan odotettua lopputulosta:

Anna luku niin kerron sen kahdella:
> 5
Antamasi luku 5 kerrottuna kahdella on 55

Tämä ongelma ratkeaa seuraavassa luvussa, jossa opimme käsitteet muuttuja ja muuttujan tyyppi

input-funktio CodeRunner-tehtävissä

CodeRunner-tehtävissä input-funktion kysymystä (esim. "Anna nimi: \n") ei tarkasteta, mutta kannattaa käyttää selkeitä kysymyksiä, jotta kirjoittamasi koodi on selkeää ja luettavaa.

Lisätietoa print-funktiosta: Rivinvaihdot ja end-parametri

print-funktio lisää tekstin loppuun oletuksena rivinvaihdon "\n". Niitä voi myös tulostaa itse lisää:

# Tulostetaan kaksi alkuainesymbolia ja kolme rivinvaihtoa ("\n")
print("Jaloja kaasuja: He ja Ne\n\n\n")
# Tulostetaan pari kaasua lisää
print("Ja lisäksi: Ar ja Kr")

Tulostaa

Jaloja kaasuja: He Ne


Ja lisäksi: Ar Kr

Rivinvaihdon voi muuttaa joksikin muuksi merkiksi print-funktion end-parametrillä:

print("Rivi 1.")
print("Rivi 2. Rivien väliin tuli rivinvaihto.")
print("Teksti 1.", end = " ")
print("Teksti 2. Tekstien väliin tuli välilyönti.")

tulostaa

Rivi 1.
Rivi 2. Rivien väliin tuli rivinvaihto.
Teksti 1. Teksti 2. Tekstien väliin tuli välilyönti.

Tehtävä 1.1.1

Tehtävä 1.1.2