Sisendi lugemine standardsisendist

Vajalikud teadmised:

1. *print* funktsioon ja selle rakendamine.
2. (väga soovituslik) Muutujad ja funktsioonid.

Sissejuhatus

Selle kursuse raames kirjutatakse programme, mis töötavad konsoolis. Konsool on kasutajaliides, mis töötab sisend-väljund printsiibil. Lihtsamas keeles võiks öelda, et see on nagu dialoog arvuti ja kasutaja vahel.

Tüüpiline töö kaik:

1. Arvuti küsib vajalikke andmeid. (kui on vaja)
Tavaliselt on olemas mingi sõnum ekraanil (nt. Sisesta oma nimi: ...),
et kasutaja saaks aru, et arvuti ootab tema sisendit.
2. Kasutaja sisestab neid andmeid. (kui arvuti palus)
3. Arvuti arvutab tulemust. (ei ole kasutajale nähtav)
4. Arvuti näitab tulemust.
5. GOTO 1 IF NECESSARY.

Selleks, et arvuti suudaks teha punktides 1, 3, 4 kirjeldatud asju, peab programmeerija arvutile seda õpetama.

Sisendi lugemise funktsioon

Teie olete juba tutvunud funktsiooniga print(...), mis väljastab midagi ekraanile. Sisendi lugemise jaoks on ka mõeldud funktsioon.

input()

Programmi täitmisel, kui arvuti näeb käsku input(), siis ta jääb ootama, kuni kasutaja vajutab Enter klahvi. Enne sisestamist võib kasutaja kirjutada midagi (ta näeb seda konsoolis). Pärast Enter klahvi vajutamist funktsioon teeb kasutaja sisendist sõne. Kui kasutaja ei sisestanud mitte midagi, siis see sõne on tühi. (“”) (Täpsemalt tähendab see, et input() tagastab sõne (string) andmetüüpi väärtuse, mis koosneb kasutaja poolt sisestatud sümbolitest.) Kuna see on tavaline sõne, siis sellega võib teha kõike, mida saab üldse teha sõnedega programmeerimises. (Et seda kuidagi kasutada, tuleb saadud väärtus muutujasse panna või teisele funktsioonile argumendina anda.)

s = input()
print(s)

Või:

print(input())

Need kaks koodi teevad sama lihtsat asja: väljastavad ekraanile kasutaja sisendi. Esimene variant salvestab sisendi muutujasse s, teine variant annab väärtuse otseselt print funktsioonile. Esimene variant sobib siis, kui on vaja enne printi sisendit kuidagi muuta või kontrollida. Kui seda ei ole vaja teha, võiks kasutada teist varianti.

input funktsioon võib ka võtta üht argumenti. Python’i dokumentatsioonis nimetatakse seda argumenti prompt‘iks.

prompt on mingi sõne, mis väljastatakse ekraanile, enne kui hakatakse sisendit ootama.

See on põhimõtteliselt sama kui kasutada funktsioone print ja input samal ajal.

NB! print, pärast sõne väljastamist, läheb uuele reale, input(prompt) mitte.

print(input("Sisestage midagi: "))

Töö käik.

1. Ekraanile ilmub sõnum "Sisestage midagi: ".
2. Arvuti hakkab ootama, kui kasutaja vajutab *Enter* klahvi.
3. Kasutaja sisestab midagi.
(See näeb välja niimoodi: 'Sisestage midagi: abc')
4. Kasutaja vajutab *Enter*.
5. Ekraanile ilmub kasutaja poolt sisestatud sõne.

Seda koodi on võimalik ka kirjutada niimoodi:

print("Sisestage midagi: ", end="")
print(input())

Rakendused

Hello world. Version: Advanced.

See kood küsib kasutaja nime, ja väljastab ekraanile sõne kujul “Hello, name!”.

NB! Kui kasutaja ei sisesta midagi ja lihtsalt vajutab ‘Enter’, siis ekraanile ilmub “Hello, !”.

def main():
    name = input("What is your name? ")
    print("Hello, " + name + "!")

if __name__ == '__main__':
    main()

Kahe täisarvu arvu summa kalkulaator

Siin tuleb meeles pidada, et kui kasutaja sisestab ‘7’, siis arvuti jaoks see on sõne, mitte arv. Et edaspidi seda arvuna kasutada, tuleb see arvuks muuta. Selleks kasutatakse funktsioone int(...) või float(...). (Sõltuvalt sellest, mis tüüpi arv see on. Kui täisarv - int, murdarv - float). Funktsioon str(...) teeb vastupidi. (Muudab kõike sõneks, kui on võimalik)

def main():
    a = int(input("Number a: "))
    b = int(input("Number b: "))
    c = a + b
    print("a" + " + " + "b = " + str(c))

if __name__ == '__main__':
    main()

Natuke lihtsamalt:

def main():
    a = int(input("Number a: "))
    b = int(input("Number b: "))
    print("a" + " + " + "b = " + str(a + b))

if __name__ == '__main__':
    main()

Siin on a ja b mingi arvud, mille väärtused sõltuvad kasutaja sisendist. (Kui kasutaja sisestab midagi peale arvude, siib tekib viga (ValueError erind).)

Programmi töö naide:

(Numbrid 10 ja 12 on kasutaja poolt sisestatud.)

Number a: 10
Number b: 12
a + b = 22

Soovitan kõike seda iseseisvalt proovida.

Edu!