Spordikas.py.
Järgnev programm on ühelt poolt näide selles, kuidas kasutada koos erinevat tüüpi andmeid, pannes nad listidest koosnevasse listi. Teiselt annab näide alguse alamprogrammide moodustamisele. Ja lõpuks ei tohi unustada, et programm on poolik ning vajab lõpuni kirjutamist.
# -*- coding: ISO-8859-4 -*-
# Algus 10 nädala 2. ülesandele - andmete sisestus.
# Olgu teada andmetena nimi ja 100 m jooksu tulemus.
# Leida:
# 1. Võitja nimi ja tulemus
# 2. Nime järgi saavutatud koht
# Kasutagem harjutamise mõttes funktsioone, mille päised on kirjas.
# Funktsioonide sisud tuleb endal juurde kirjutada.
import string
# NB! Funktsioon min on olemas. Leiab jadast vähimat väärtust! Aga teeme parema.
# Ideeks on, et saab määrata mitmenda sisemise listi elemendi järgi vähim leitakse.
# Vaikimisi tehakse seda 1. elemendi järgi.
def miinimum(jada,n):
"Funktsioon vähima väärtuse leidmiseks jadas, mis koosneb jadadest. Sisendiks on uuritav jada ja n - elemet, mille järgi vähimat väärtust tuvastada."
# Funktsiooni ideeks on võtta sisestatud nimi, leida jadast sellele nimele vastav tulemus ja
# tuvastada, mitmes koht selle tulemusega saavutati (arvestades, et parim tulemus on vähim tulemus).
def osaleja_koht(jada,nimi):
"Funktsioon leiab sisestatud nime järgi jadast osaleja poolt saavutatud koha."
# Peaprogrammi algus
# Kasutusel on stringi meetod split, mis sisestatud stringi tükkideks teeb,
# vaikimisi on tükeldamiskohaks tühik. Tükeldamise tulemuseks on list. Antud näites püütakse
# listi elemendid eraldi muutujatesse ning eeldatakse, et string tuleb tükeldada , kohalt.
# Selleks saab määrata ka muud eraldajat. Ta tuleks parameetriks kirjutada:
# nimi,tulemus = sisend.split(" ") - eraldajaks on koma, tükeldatakse muutuja rida.
sport = []
print("Sisesta spordipäeva tulemused (3 tk). Õpilase nimi ja tulemus eralda tühikuga.")
for i in range(3):
sisend = input("nimi tulemus ")
nimi,tulemus = sisend.split(" ")
sport += [[nimi,float(tulemus)]]
# Funktsioon kutsutakse välja sooviga leida vähim väärtus listi 2. elemendi ehk tulemuse järgi
print(sport)
# Kuna funktsioonid ei ole veel valmis, on järgnevad laused väljakommenteeritud.
# v2him = miinimum(sport,2)
# print v2him
print("Täname kasutamast! Ilusat päeva jätku :)")
# Sisendi töötlemine võiks olla ka järgmine:
# for i in range(3):
# sisend = input("nimi tulemus ")
# asi = sisend.split(" ")
# sport += [float(asi)]
# Split teeb juba ise listi ja kogu list lisatakse korraga teise listi. Vahe oleks selles, et
# antud juhul ei teisendata tulemust arvuks. Antud ülesandes võib see sobida, sest
# võrdlemisel pole hädasti arvu vaja - numbrite järjestus on sama.