Kirjasto

Sisältää
tehtävän!

Kirjasto-tietorakenne tarjoaa ohjelmoijalle tehokkaan työvälineen. Siinä on listan kaltainen rakenne. Eroavaisuus on siinä, että kirjaston alkio saa nimen ja arvon.

Kirjasto tehdään aaltosulkeiden sisään ja alkion nimi erotetaan alkion arvosta kaksoispisteellä (:)

Tässä kirjastoon on tallennettu nimiä ja nimeen liitämme numeron.

Kirjaston yksittäiseen alkioon viitataan alkion nimen avulla:

Esimerkki kirjaston käytöstä


numerot = { "Pentti" : "8789755",
            "Maija" : "3542465",
            "Untamo" : "3452657"
          }

def annaNumero(nimi):
	num = numerot[nimi]	#haetaan numero kirjastosta
	print(num)
    
hae = input("Anna nimi")

annaNumero(hae)	

Edelliseen esimerkkiin voitaisiin esimerkiksi lisätä testi, onko nimi kirjastossa:


numerot = { "Pentti" : "8789755",
            "Maija" : "3542465",
            "Untamo" : "3452657"
          }

def annaNumero(nimi):
	if nimi in numerot:		#testataan onko nimi kirjastossa
		num = numerot[nimi]	#haetaan numero kirjastosta
		print(num)
    
hae = input("Anna nimi")

annaNumero(hae)	

Kirjaston arvon muuttaminen


numerot = { "Pentti" : "8789755",
            "Maija" : "3542465",
            "Untamo" : "3452657"
          }

def annaNumero():
	nimi = input("Anna haettavan nimi")
	if nimi in numerot:		#testataan onko nimi kirjastossa
		num = numerot[nimi]	#haetaan numero kirjastosta
		print(num)
		
def annaKaikki():
	for alkio in numerot:
		print(alkio + ":" + numerot[alkio])
		
def poistaNimi():
	nimi = input("Anna poistettavan nimi")
	if nimi in numerot:		#testataan onko nimi kirjastossa
		del numerot[nimi]	#haetaan numero kirjastosta

def muutaNumero():
	nimi = input("Anna muutettava nimi")
	if nimi in numerot:
		uusinumero = input("Anna uusi numero")
		numerot[nimi] = uusinumero
		
stoppi = False

while (stoppi == False):
	kasky = input("Anna käsky")
	if (kasky == "lopeta" or kasky == ""):
		stoppi = True
	elif (kasky == "hae"):
		annaNumero()
	elif (kasky == "kaikki"):
		annaKaikki()
	elif (kasky == "poista"):
		poistaNimi()
	elif (kasky == "muuta"):
		muutaNumero()	

Tehtävä

Tee käännösohjelma suomi-englanti, jolla voi kysyä käännöstä suomesta englantiin.

Laita ohjelmaan valmiiksi ainakin parikymmentä sanaa. Ohjelmaan pitää voida laittaa myös uusia sanoja ja sen pitää tarkistaa onko uusia sana jo olemassa.

Suorita tehtävät Editorilla ja tallenna työsi Tiedostona.