Pythoni standardse sisendi põhialused ja rakendused algajatele

1. Sissejuhatus

Pythoniga programmi koostamisel on kasutaja sisendi vastuvõtmine ja töötlemine, mida nimetatakse “standardseks sisendiks”, väga oluline. Eriti input() funktsiooni kasutades saab klaviatuurilt andmeid hankida, mis võimaldab kasutajaga interakteeruda. Selles artiklis on Python’i algajatele selgitatud standardse sisendi põhilist kasutamist ja rakendusi konkreetsete näidetega. Sisu hõlmab lihtsatest programmidest kuni keerukamate töötlusmeetoditeni, võimaldades järk-järgult õppida.

2. Pythoni standardse sisendi põhiline kasutamine

2.1 Mis on input() funktsioon?

input() funktsioon võtab kasutajalt sisendi ja tagastab selle stringina. Näiteks järgmise koodiga saadakse kasutaja nimi ja väljastatakse.
name = input("Palun sisestage oma nimi: ")
print(f"Tere, {name}!")
Selles koodis salvestatakse input()-ga sisestatud nimi muutujasse name ja väljastatakse tervitustekst.

2.2 Numbriliste andmete sisestamine ja tüübimuundamine

input()-ga saadud andmed on stringid, seega numbriliseks kasutamiseks tuleb teha tüübimuundamine int() või float() funktsioonidega.
age = int(input("Palun sisestage oma vanus: "))
print(f"Sa oled {age} aastat vana.")
Selles näites muundatakse string täisarvuks ja väljastatakse vanus numbriliselt.
年収訴求

3. Mitmerealise standardse sisendi töötlemine

3.1 Mitmerealine tekstisisestus

Kui soovite saada mitmerealist sisendit, on tõhus kasutada for-tsüklit või loendi mõistete süntaksit. Näiteks kood, mis palub kasutajal sisestada kolm erinevat sõna, on järgmine.
words = [input(f"{i+1}. sõna sisestage: ") for i in range(3)]
print(f"Sisestatud sõnad: {words}")
Selles koodis salvestatakse kolme rea sisend loendisse ja väljastatakse see.

3.2 Mitme sisendi sisestamine tühikuga eraldatud

Kui sisestate ühe rea jooksul mitu andmetüüpi, saate kasutada split()-funktsiooni tühikuga eraldamiseks. Järgnevas näites palutakse kasutajal sisestata arvud tühikuga eraldatult ja need teisendatakse täisarvudeks.
numbers = list(map(int, input("Sisestage arvud tühikuga eraldatult: ").split()))
print(f"Sisestatud arvud: {numbers}")
Siin kasutatakse map()-funktsiooni sisestatud arvude teisendamiseks täisarvudeks. split()-ga eraldatud sisend salvestatakse tõhusalt loendisse.

4. Standard sisendi rakendused: failide ja binaarandmete töötlemine

4.1 Standard sisendi töötlemine sys.stdin kasutades

sys.stdin kasutamisega saad andmeid otse standard sisendist lugeda. See on kasulik, kui soovid töödelda suurt hulka tekstandmeid või käsurea argumentidest saadud faili sisu standard sisendina.
import sys

data = sys.stdin.read()
print(f"Saadud andmed: {data}")
Selles koodis loetakse kogu andmed standard sisendist ja väljastatakse need.

4.2 Binaarandmete lihtne töötlemine

sys.stdin.buffer kasutamisega saab binaarandmeid otse töödelda. See on kasulik pildifailide või muude binaarfailide käsitlemisel.
import sys

binary_data = sys.stdin.buffer.read()
print(binary_data)
Selles koodis loetakse binaarandmed standard sisendist ja väljastatakse need muutmata.

5. Praktilised kasutusjuhtumid: probleemide lahendamine standard sisendi abil

5.1 Keskmise arvutamise programm, mis kasutab standard sisendit

Allolevas programmis loetakse standard sisendist täisarvud, arvutatakse nende keskmine ja väljastatakse see. Sellist töötlust kasutatakse sageli võistlusprogrammeerimises ja andmetöötluses.
N = int(input("Palun määrake sisestatavate arvude arv: "))
numbers = list(map(int, input("Palun sisestage arvud tühikuga eraldatuna: ").split()))
average = sum(numbers) / N
print(f"Keskmine on {average}.")
See programm võtab esmalt sisestatavate arvude arvu, seejärel käsitleb tühikuga eraldatud sisestatud arvud loendina ja arvutab keskmise.

5.2 Programm, mis võtab andmeid vastu kuni sisestus lõpeb

See on programm, mis jätkab andmete vastuvõtmist kuni kasutaja sisestab tühja rea. Määrates kindla lõpetamistingimuse, saab teostada pikaajalist sisendandmete töötlemist.
data = []
while True:
    line = input()
    if line == "":
        break
    data.append(line)
print("Sisestatud andmed: ", data)
Selles näites võetakse andmeid vastu kuni sisestatakse tühja rida ja lõpuks väljastatakse kogu andmestik.

6. Sageli esinevad vead ja nende lahendused

6.1 ValueError lahendamine

Kui sisestatakse arvväärtus, kuid kasutaja sisestab kogemata teksti, tekib ValueError. Selle vea vältimiseks tuleb lisada kood, mis kontrollib sisestatud väärtust.
try:
    age = int(input("Palun sisestage oma vanus: "))
except ValueError:
    print("Vigane sisestus. Palun sisestage arv.")

6.2 EOFError lahendamine

Mitmerealise sisendi vastuvõtmisel võib esineda EOF(End of File)viga, mis näitab sisendi lõppu. Selle vältimiseks on oluline seadistada sobiv lõpetamistingimus.
import sys

for line in sys.stdin:
    if line.strip() == "":
        break
    print(line.strip())

7. Kokkuvõte

Pythoniga standardse sisendi kasutamine võimaldab kasutajatega suhtlemist lihtsalt teostada ning võimaldab luua keerukamaid programme. Õppisime erinevaid meetodeid alates põhilisest input() funktsioonist kuni failide ja binaarandmete töötlemiseni. Mõistes ja rakendades standardse sisendi kasutusviise, paraneb programmi paindlikkus ja tõhusus.
RUNTEQ(ランテック)|超実戦型エンジニア育成スクール