目次
- 1 1. Sissejuhatus
- 2 2. Pythoni standardse sisendi põhiline kasutamine
- 3 3. Mitmerealise standardse sisendi töötlemine
- 4 4. Standard sisendi rakendused: failide ja binaarandmete töötlemine
- 5 5. Praktilised kasutusjuhtumid: probleemide lahendamine standard sisendi abil
- 6 6. Sageli esinevad vead ja nende lahendused
- 7 7. Kokkuvõte
1. Sissejuhatus
Pythoniga programmi koostamisel on kasutaja sisendi vastuvõtmine ja töötlemine, mida nimetatakse “standardseks sisendiks”, väga oluline. Eritiinput()
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 kasutadafor
-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 kasutadasplit()
-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õhilisestinput()
funktsioonist kuni failide ja binaarandmete töötlemiseni. Mõistes ja rakendades standardse sisendi kasutusviise, paraneb programmi paindlikkus ja tõhusus.