Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Ohjelmointia teknisille viestijöille

Samankaltaiset esitykset


Esitys aiheesta: "Ohjelmointia teknisille viestijöille"— Esityksen transkriptio:

1 Ohjelmointia teknisille viestijöille
Tekninen viestintä Ohjelmointia teknisille viestijöille

2 MUISTIN VIRKISTYKSEKSI
Muuttujat ovat jokaisen ohjelmointikielen peruselementti Muuttujaan voi tallentaa viittauksen johonkin tiettyyn arvoon. Tähän arvoon voi myöhemmin viitata kätevästi muuttujan nimellä ennatys =

3 MUISTIN VIRKISTYKSEKSI
Muuttuja määritetään antamalla ensin muuttujan nimi, sitten yhtäsuuruusmerkki ja lopuksi muuttujaan tallennettava arvo: ennatys = Muuttujia voi myös määrittää toisen muuttujien avulla yht = eka_luku + toka_luku

4 MUISTIN VIRKISTYKSEKSI
Pythonissa on valmiina monta hyödyllistä funktiota (eli aliohjelmaa, eli metodia), joita voit käyttää omissa ohjelmissasi: print() tulostaa parametrina annetun arvon ruudulle: print("Kaunis ilma tänään") type() kertoo muuttujan tai arvon tyypin: type(joku_muuttuja) str() muuntaa parametrina annetun arvon merkkijonoksi, eli tekstiksi: str(65536) int() muuntaa parametrina annetun arvon kokonaisluvuksi: int( )

5 MUISTIN VIRKISTYKSEKSI
format()-funktiolla voit lisätä parametreina annettuja arvoja merkkijonoon niille merkittyihin paikkoihin: viesti = "{} on {}" viesti.format("Hauki", "kala") viesti.format("Python", "parasta")

6 MUISTIN VIRKISTYKSEKSI
Merkkijonoja merkitään Pythonissa lainausmerkeillä ("Esimerkki 1"), puolilainausmerkeillä ('Esimerkki 2') tai kolmella lainausmerkillä ("""Esimerkki 3"""). Vaikka merkkijonoja voi yhdistää toisiin merkkijonoihin +-operaattorilla, merkkijonoja ja numeroita ei voi yhdistää suoraan. Numerot tulee ennen yhdistämistä muuttaa merkkijonoksi str()-funktion avulla.

7 SANANEN FUNKTIOISTA Funktiot ovat ohjelmointikielen elementti, joka toteuttaa tietyn tehtävän Funktiota kutsutaan antamalla funktion nimi ja kaarisulkeet Useat funktiot suorittavat tehtävänsä parametrien avulla Parametrit syötetään kaarisulkeiden sisään

8 SANANEN FUNKTIOISTA Jos funktio ottaa syötteekseen parametrin, funktio useimmiten käsittelee tätä parametriä tai parametreja jollain tapaa Funktio voi esim. tulostaa parametrina annettuja arvoja tai sitten tuottaa uutta tietoa parametrien perusteella

9 SANANEN FUNKTIOISTA Jos funktio tuottaa uutta tietoa tai muokkaa annettuja arvoja, funktio palauttaa muokatut arvot käyttäjälle paluuarvona Paluuarvo ei tallennu automaattisesti, vaan käyttäjän tulee poimia se talteen muuttujan avulla lause = "Minun nimeni on {}" nimi = "Esko Mörkö" lauseNimella = lause.format()

10 MINIPROJEKTI: KÄYTTÄJÄN HAASTATTELEMINEN
Rakennetaan ohjelma, joka kysyy käyttäjältä muutamia tietoja ja tulostaa sen jälkeen käyttäjälle mukautetun viestin Käyttäjän tietojen kysymiseen käytetään input()-funktiota ja tiedot tallennetaan sopiviin muuttujiin

11 HARJOITUS: TEKSTIN KÄSITTELY
Laadi ohjelma jossa on kolme muuttujaa: alku, jonka arvo on ”Minun nimeni on <nimi> ja olen ” ika, jonka arvo on ikä numeromuodossa loppu, jonka arvo on ” vuotta vanha” Laadi lisäksi muuttuja tuloste, johon yhdistät luomasi kolme muuttujaa ja tulosta muuttujan sisältö ruudulle. Esimerkiksi: ”Minun nimeni on Jaana-Petteri ja olen 22 vuotta vanha”

12 HARJOITUS: TEKSTIN KÄSITTELY
Laadi ohjelma jossa on kolme muuttujaa: nimi, jonka arvo on nimesi ika, jonka arvo on ikäsi numeromuodossa kaupunki, jonka arvo on kotikaupunkisi Laadi lisäksi muuttujat viesti ja tuloste. Tallenna toiseen muuttujaan tulostettavan viestin pohja ja toiseen tulostettava lause format()-funktion avulla. Tulostuvan lauseen tulee olla seuraavanlainen: ”Minun nimeni on Jaana-Petteri. Olen 22-vuotias, kotikaupunkini on Kokkola ja pidän Pythonista yli kaiken.” Tulosta lause ruudulle.

13 TEKSTIFUNKTIOT Tekstejä voi muokata Pythonissa erilaisten tekstifunktioiden avulla Tekstifunktiot eivät tee muutoksia alkuperäiseen tekstiin, vaan palauttavat funktion mukaisen arvon Funktion palauttaman arvon voi tallentaa esim. alkuperäisen muuttujan uudeksi arvoksi

14 TEKSTIFUNKTIOT # Muita funktioita: teksti = "hyvää joulua"
teksti.upper() # palauttaa arvon "HYVÄÄ JOULUA" teksti.lower() # palauttaa arvon "hyvää joulua" teksti.title() # palauttaa arvon "Hyvää Joulua" teksti.capitalize() # palauttaa arvon "Hyvää joulua" # Muita funktioita: teksti.islower(), teksti.isupper(), teksti.isalpha(), teksti.isdigit(), teksti.isalnum() Huom! teksti.isalpha() palauttaa arvon epätosi, jos merkkijonossa on välilyönti.

15 TEKSTIFUNKTIOT strip()-, lstrip(), ja rstrip() –funktioilla merkkijonon sisällöstä voi poistaa tiettyjä merkkejä a = "===== Hyvää uutta vuotta =====" a.strip("=") >>> Hyvää uutta vuotta a.lstrip("=") >>> Hyvää uutta vuotta ===== a.rstrip("=") >>> ===== Hyvää uutta vuotta b = " tekstinpätkä " b.strip() >>> tekstinpätkä

16 TEKSTIFUNKTIOT index()- ja find() –funktioilla voi hakea merkkijonon sisällöstä tiettyä tai tiettyjä merkkejä Palautuva numero viittaa haetun tekstikohdan järjestysnumeroon merkkijonossa a = "Hyvää uutta vuotta" a.index("ä") >>> 3 a.index("vuota") >>> ValueError a.find("uutta") >>> 6 a.find("kuutta") >>> -1

17 TEKSTI JA SARJAT Erilaiset sarjat (sequence) ovat olennainen osa Pythonia, ja kielessä on monia tapoja tarkastella sarjoja Myös teksti, eli merkkijonot, ovat Pythonissa sarjoja len()-funktio kertoo sarjan pituuden: print (len("avaruusalus"))

18 SARJOJEN NUMEROINTI 1 2 3 4 5 6 7 8 E S I M R K -9 -8 -7 -6 -5 -4 -3 -2 -1 Sarjat numeroidaan Pythonissa positiivisella ja negatiivisella järjestysnumerolla. Positiivinen numerointi alkaa numerosta 0 ja negatiivinen numerosta -1 Sanan "Esimerkki" r-kirjain voidaan lukea järjestysluvuilla [5] ja [-4]

19 TEKSTI JA SARJAT Sarjoja ei tarvitse käydä läpi kokonaisuudessaan, vaan yksittäisiä sarjojen elementtejä on mahdollista tarkastella sijanumeron perusteella: Koska sarjojen numerointi alkaa nollasta, ylläolevissa esimerkeissä tulostuu kirjain "p" sana = "Sähköporakone" print (sana[5]) print("tekstinpätkä"[7])

20 muuttuja[alku:loppu:askel]
PALA SARJAA Sarjoista voi lukea myös pieniä palasia kerrallaan järjestysnumeroiden avulla Alku: Ensimmäinen tarkasteltava merkki Loppu: Merkki, jota ennen tarkastelu loppuu Askel: Montako merkkiä eteenpäin siirrytään kun vuorossa ollut merkki on käsitelty muuttuja[alku:loppu:askel]

21 PALA SARJAA Esimerkiksi: sana = "Ananasakäämä" sana[0:6:1]
>>> Aaaa

22 PALA SARJAA Merkkijonoja voi lukea myös tietystä merkistä sen loppuun asti, alusta tiettyyn merkkiin asti: sana = "Ananasakäämä" print (sana[3::1]) >>> nasakäämä print(sana[:7:1]) >>> Ananasa

23 PALA SARJAA index()-funktiota voi käyttää apuna, jos haluaa poimia talteen tekstiä jonkun tietyn merkin kohdalta: tiedosto = "philosoraptor.jpg" vain_nimi = tiedosto[:tiedosto.index("."):1] print(vain_nimi) >>> philosoraptor

24 MINIPROJEKTI: SÄHKÖPOSTILEIKKURI
Johtaja Mahamies on kyllästynyt arvuuttelemaan mikä osa sähköpostiosoitteesta on käyttäjänimi ja mikä verkkotunnus Rakennetaan johtajalle ohjelma, joka kertoo mikä osa syötetystä sähköpostiosoitteesta on käyttäjänimi ja mikä verkkotunnus # Poimitaan sähköpostiosoite # Poimitaan osoitteesta käyttäjänimi # Poimitaan osoitteesta verkkotunnus # Muotoillaan viesti # Näytetään viesti

25 MINIPROJEKTI: SÄHKÖPOSTILEIKKURI
# Poimitaan sähköposti sposti = input("Syötä sähköpostiosoite: ").strip() # Poimi käyttäjänimi kayttaja = # Poimi verkkotunnus verkkotunnus = + 1::1] # Luo viesti viesti = "Käyttäjänimi on {} ja verkkotunnus on {}" # Muotoile viesti viesti = viesti.format(kayttaja, verkkotunnus) # Tulosta viesti print(viesti)

26 HARJOITUS: TEKSTIFUNKTIOT JA SARJAT
Tee megavisa osoitteessa: Muokkaa sähköpostileikkurista URL-leikkuri, joka poistaa verkko-osoitteen alusta merkkijonon ja näyttää käyttäjälle alkuosattoman osoitteen

27 Totuusarvot ja ohjausrakenteet
Tekninen viestintä Totuusarvot ja ohjausrakenteet

28 OHJAUSRAKENTEET Ohjelmat toimivat harvoin täsmälleen samalla tavalla jokaisella suorituskerralla Ohjausrakenteiden avulla ohjelma saadaan esim. reagoimaan käyttäjän syötteisiin tai toimimaan eri tavalla riippuen siitä minkälaisia arvoja ohjelmassa käsitellään

29 TOTUUSARVOT Totuusarvot ovat yksi Pythonin perus-tietotyypeistä
Totuusarvoja on kaksi, True ja False, ja totuusarvot kirjoitetaan Pythonissa isolla alkukirjaimella

30 TOTUUSARVOT Totuusarvoja käytetään tyypillisesti Pythonin vertailuoperaattoreiden kanssa x > y x on suurempi kuin y x < y x on pienempi kuin y x == y x:n arvo on sama kuin y:n arvo x != y x:n arvo on eri kuin y:n arvo x >= y x on suurempi tai yhtä suuri kuin y x <= y x on pienempi tai yhtä suuri kuin y

31 TOTUUSARVOT 5 == 3 >>> False 8 != 6 >>> True
"Valas" == "Kala" "Kakku" != "Totuus" 3 <= 3 4 >= 3 "Kala" != "Kala "

32 TOTUUSARVOT Pienetkin erot merkkijonojen kirjoitusasussa tarkoittava, etteivät merkkijonot ole samoja Vertailun helpottamiseksi käyttäjän syöttämiä arvoja voi muokata tekstifunktioiden avulla "Mika" == "mika" >>> False "Mika" == "mika".title() >>> True "MIKA" == "MiKa ".upper().strip()

33 HARJOITUS: TOTUUSARVOT
Tee megavisa osoitteessa:

34 if & else Jotta ohjelma voisi reagoida paremmin esim. käyttäjän syötteisiin, ohjelmiin voidaan sijoittaa ohjausrakenteilla Yksi yleisimmistä ohjausrakenteista on if-lause

35 IF-LAUSEET if-lauseissa on aina ehto, jonka arvo on joko tosi tai epätosi sekä ehtoon liittyvä ohjelmalohko Ohjelmaa suoritettaessa Python tarkastaa onko lausessa määritetty ehto tosi vai epätosi Jos ehto on tosi, Python suorita ehtoon liittyvän ohjelmalohkon. Jos ehto on epätosi, Python ohittaa ehtoon liittyvän ohjelmalohkon

36 IF-LAUSEET Monissa ohjelmointikielissä if-lauseisiin liittyvä ohjelmalohto merkitään aaltosulkeilla Pythonissa ohjelmalohkoa merkitään tavallisesti sisennyksellä: C++: if (a > 50) { cout << "a on suurempi kuin 50" << end1; } C#: if (a > 50) { Console.WriteLine("a on suurempi kuin 50"); } if a > 50: print("a on paaaaljon") print("suurempi kuin 50")

37 IF-LAUSEET Sisennyksen voi tehdä esim. sarkainmerkillä tai neljää välilyöntiä käyttäen. Tärkeintä on että samassa ohjelmalohkossa käytetään samaa sisennystä Sisäkkäisiä ehtoja käytettäessä myös sisemmät lohkot tulee sisentää saman mallin mukaisesti: if a > 50: print("a on suurempi kuin 50") if a > 100: print("a on myös suurempi kuin 100")

38 IF-LAUSEET if True: print("Tosi on") >>> Tosi on if 2 > 3:
print("Yllättävää!") >>> if name == "Mika": print("Hei Mika!") >>> Hei Mika!

39 IF-LAUSEET if-lausetta voi täydentää siihen liittyvällä else-lauseella
else-lause sisältää myös siihen liittyvän ohjelmalohkon else-lauseeseen liittyvä ohjelmalohko suoritetaan aina silloin kun if-lauseeseen liittyvä ehto on epätosi

40 IF-LAUSEET numero1 = 512 numero2 = 1024 if numero1 > numero2:
print ("Numero 1 on suurempi kuin numero 2") else: print ("Numero 2 on suurempi kuin numero 1") >>> "Numero 2 on suurempi kuin numero 1"

41 IF-LAUSEET if- ja else-lauseita voi edelleen täydentää elif-lauseella
Jos if-lause on epätosi, Python tarkastaa elif-lauseen (tai lauseet) else-lause suoritetaan vain jos myös elif-lauseiden arvoiksi tulee epätosi

42 IF-LAUSEET numero1 = 512 numero2 = 512 if numero1 > numero2:
print ("Numero 1 on suurempi kuin numero 2") elif numero2 > numero1: print ("Numero 2 on suurempi kuin numero 1") else: print ("Numerot 1 ja 2 ovat yhtä suuria") >>> "Numerot 1 ja 2 ovat yhtä suuria"

43 HARJOITUS: OHJAUSRAKENTEET
Laadi ohjelma, joka kysyy käyttäjältä tämän nimeä Laadi ohjelmaan ehtorakenne, joka: Tervehtii korostetun ystävällisesti tietyn nimistä käyttäjää Tarjoaa muun nimisille käyttäjille perustervehdyksen Muista käyttää tekstifunktioita käyttäjäsyötteiden siivoamiseen

44 HARJOITUS: OHJAUSRAKENTEET
Laadi ohjelma, jossa tarkastellaan kahta käyttäjän syöttämää muuttujaa, jotka sisältävät numeron Laadi ohjelmaan kolme ehtoa: Ensimmäinen tulostaa tekstin, joka kertoo että muuttujiin tallennetut numerot ovat yhtä suuria Toinen tulostaa tekstin, joka kertoo että ensimmäisen muuttujan numero on suurempi Kolmas tulostaa tekstin, joka kertoo että toisen muutujan numero on suurempi

45 HARJOITUS: OHJAUSRAKENTEET
Laadi numeronarvausohjelma, joka: Arpoo numeron väliltä 1-20 Pyytää käyttäjää arvaamaan luvun Kertoo käyttäjälle arvasiko tämä oikein, vai oliko käyttäjän arvaama luku pienempi tai suurempi kuin kysyttävä luku Käytä Random-moduulin randint()-funktiota numeron arpomiseen

46 LOOGISET OPERAATTORIT
Ehtoja voi tarkentaa yhdistelemällä useita ehtoja ehtolauseeseen loogisten operaattoreiden not, and ja or avulla Not-operaattori palauttaa arvon tosi, kun ehtolauseen ehto on epätosi: numero1 = 512 numero2 = 1024 if not numero1 > numero2: print ("Numero 1 ei ole suurempi kuin numero 2") >>> Numero 1 ei ole suurempi kuin numero 2

47 LOOGISET OPERAATTORIT
and-operaattorin avulla ehdossa voi käyttää kahta tai useampaa tarkistettavaa arvoa and-operaattori palauttaa arvon tosi vain silloin kun molemma tarkistettavat arvot toteutuvat numero1 = 512 numero2 = 1024 if numero1 > 500 and numero2 > 1000: print ("Numero 1 on yli 500 ja numero 2 yli 1000") >>> Numero 1 on yli 500 ja numero 2 yli 1000

48 LOOGISET OPERAATTORIT
Operaattoreita on mahdollista yhdistellä, jos esim. halutaan tarkistaa jääkö joku ehto toteutumatta numero1 = 512 numero2 = 768 if not (numero1 > 500 and numero2 > 1000): print ("Numero 1 on alle 500 tai numero 2 alle 1000") >>> Numero 1 on alle 500 tai numero 2 alle 1000

49 LOOGISET OPERAATTORIT
or-operaattorin avulla voi tarkastaa toteutuuko joku (tai kaikki) ehtolauseessa käytetyistä ehdoista or-operaattori palauttaa arvon epätosi vain jos yksikään ehdoista ei toteudu numero1 = 512 numero2 = 768 if numero1 > 500 or numero2 > 1000: print ("Numero 1 on yli 500 tai numero 2 yli 1000") >>> Numero 1 on yli 500 tai numero 2 yli 1000

50 LOOGISET OPERAATTORIT
Kaikkia operaattoreita on mahdollista käyttää yhdessä ehtolauseissa tarkkojen ehtojen muodostamiseksi: n1 = 512 n2 = 768 if (n1 > 500 and n2 > 1000) or (n1 > 500 and n2 > 700): print("Mahtaako tämä tulostua?") if not((n1 > 500 and n2 > 1000) or (n1 > 500 and n2 > 700)): print("...vai tulostuuko tämä?")

51 HARJOITUS: LOOGISET OPERAATTORIT
Tee megavisa osoitteessa:

52 Tekninen viestintä Tietorakenteet

53 TIETORAKENTEET Tietoja ei useimmiten kannata tallentaa useisiin yksittäisiin muuttujiin Tehokkaampi tapa tallentaa tietoja on käyttää Pythonin sisäänrakennettuja tietorakenteita: Listat Monikot Sanakirjat

54 LISTA Lista on ehkä yleisin Pythonissa käytetty tietorakenne
Listoihin voi tallentaa useita, tarvittaessa erityyppisiä, arvoja sekamelska = ["A", "C", 4, 3, True]

55 LISTA Pythonin listat ovat sarjoja. Listojen elementtejä voi siis hakea järjestysnumeron perusteella Listoista voi lukea useita elementtejä kerralla: sekamelska = ["A", "C", 4, 3, True] print (sekamelska[3]) >>> 3 print (sekamelska[:3:1]) >>> ['A', 'C', 4]

56 LISTA Listoihin voi tallentaa myös listoja
Sisäkkäisten listojen tietoja voi tarkastella päälistan ja alilistan järjestysnumeroiden perusteella: tulokset = [["Mika", 100], ["Topias", 77], ["Timo", 66]] print(tulokset[0][0]) >>> Mika Print(tulokset[2][1]) >>> 66

57 LISTA Sisäkkäisiä listoja käytetään usein taulukkomuotoisen tiedon tallentamiseen Tällöin ensimmäinen järjestysnumero kertoo taulukon rivin ja toinen järjestysnumero taulukon sarakkeen

58 LISTA Listan tietoja voi tarkastella in-operaattorin avulla
Koska in-operaattori palauttaa totuusarvon, voi in-operaattoria käyttää ohjausrakenteissa ostokset = ["Pekoni", "Pavut", "Kananmunat"] "Pekoni" in ostokset >>> True "Tofu" in ostokset >>> False

59 LISTA Listat, toisin kuin esim. merkkijonot, ovat muokattavissa
Listojen sisältöä voi muokata esim. järjestysnumeron avulla sekamelska = ["A", "C", 4, 3, True] sekamelska[1] = "D" print (sekamelska) >>> ['A', 'D', 4, 3, True]

60 LISTOJEN MUOKKAAMINEN
Listoihin on helppo lisätä sisältöä append()-funktion avulla: Ostoslista [0] "Pekonia" [1] "Kananmunia" [2] "Tomaattia" [3] "Papuja" [4] [5] Ostoslista [0] "Pekonia" [1] "Kananmunia" [2] "Tomaattia" [3] "Papuja" [4] "Salmiakkia" [5] "Huuhkaja" ostoslista.append("Salmiakkia") ostoslista.append("Huuhkaja")

61 LISTOJEN MUOKKAAMINEN
pop()- ja remove() -funktioilla voit poistaa elementtejä listalta: Ostoslista [0] "Pekonia" [1] "Kananmunia" [2] "Tomaattia" [3] "Papuja" [4] "Salmiakkia" [5] "Huuhkaja" Ostoslista [0] "Pekonia" [1] "Kananmunia" [2] "Tomaattia" [3] "Papuja" [4] "Huuhkaja" ostoslista.remove("Salmiakkia") Ostoslista [0] "Pekonia" [1] "Kananmunia" [2] "Tomaattia" [3] "Papuja" [4] "Huuhkaja" Ostoslista [0] "Pekonia" [1] "Tomaattia" [2] "Papuja" [3] "Huuhkaja" ostoslista.pop(1)

62 LISTOJEN MUOKKAAMINEN
Listan järjestelyyn voit käyttää sort()- ja reverse()-aliohjelmia Ostoslista [0] "Pekonia" [1] "Kananmunia" [2] "Tomaattia" [3] "Papuja" [4] "Salmiakkia" [5] "Huuhkaja" Ostoslista [0] "Huuhkaja" [1] "Kananmunia" [2] "Papuja" [3] "Pekonia" [4] "Tomaattia" [5] "Salmiakkia" ostoslista.sort() Ostoslista [0] "Pekonia" [1] "Kananmunia" [2] "Tomaattia" [3] "Papuja" [4] "Salmiakkia" [5] "Huuhkaja" Ostoslista [0] "Huuhkaja" [1] "Salmiakkia" [2] "Papuja" [3] "Tomaattia" [4] "Kananmunia" [5] "Pekonia" ostoslista.reverse()

63 LISTA Listoja voi yhdistää toisiinsa + -operaattorin avulla
ostokset = ["Pekoni", "Pavut", "Kananmunat"] toisetOstokset = ["Hamsteri", "Jääraappa"] ostokset = ostokset + toisetOstokset ostokset = ostokset + ["Jadeapina", "Omenamehu"]

64 MINIPROJEKTI: KEINOÄLYPORTSARI
Johtaja Mahamies pyörittää sivubisneksenä ravintolaa, muttei haluaisi maksaa palkkaa portsareille Johtaja tarvitsee siis ohjelman, joka tarkastaa onko ravintolaan sisään pyrkivä asiakas VIP-listalla ja päästää vain Erittäin Tärkeät Henkilöt™ sisään Jotta ravintolan tulovirta parantuisi, keinoälyn tulee kuitenkin ehdottaa VIP-listalle liittymistä jokaiselle asiakkaalle, jota se ei tunnista, mutta myös tarjota jo listalla oleville mahdollisuus poistua listalta

65 MONIKKO (TUPLE) Toinen yleinen listatyyppi Pythonissa on monikko
Monikkon sisältöä voi tarkastella samoin tavoin kuin listan sisältöä fibonacci = (0,1,1,2,3,5,8,13,21,34,55)

66 MONIKKO (TUPLE) Kun monikko on määritetty, sen sisältöä ei enää voi muokata Monikkoa käytetään listoihin, joiden ei ole tarkoitus muuttua sen jälkeen kun ne on luotu Monikko on kevyempi listatyyppi kuin lista

67 MONIKKO (TUPLE) Voit muuntaa listan monikoksi tuple()-funktion avulla
...tai monikon listaksi list()-funktion avulla fibonacciLista = [0,1,1,2,3,5,8,13,21,34,55] fibonacciMonikko = tuple(fibonacciLista) lukuMonikko = (2,4,8,16,32,64,128,256,512,1024) lukuLista = list(lukuMonikko)

68 SANAKIRJA Kolmas tapa tallentaa tietoa on sanakirjan käyttäminen
Sanakirjoissa tieto tallennetaan ja tietoa noudetaan avain-arvo –parien avulla Sanakirjojen avaimia ei voi muokata sen jälkeen kun ne on määritetty, mutta avaimiin liittyviä arvoja voi muuttaa

69 SANAKIRJA hahmot = {"Simon":"Tim Bisley", "Jessica":"Daisy Steiner",
"Nick":"Mike Watt", "Mark":"Brian Topp"} print(hahmot["Simon"]) >>> Tim Bisley print(hahmot["Bark"]) >>> KeyError: 'Bark'

70 SANAKIRJA Sanakirjan arvot eivät ole järjestyksessä
Tietoja pystyy hakemaan vain avaimen perusteella Avaimia voi tarkastella keys()-funktiolla hahmot = {"Simon":"Tim Bisley", "Jessica":"Daisy Steiner", "Nick":"Mike Watt", "Mark":"Brian Topp"} print(hahmot.keys()) >>> dict_keys(['Jessica', 'Nick', 'Simon', 'Mark'])

71 SANAKIRJA Yhdistämällä sanakirjan ja listan, voit tallentaa yhden avaimen taakse useita tietoja: Ainoa hankaluus listoja käytettäessä on, että tallennettavien tietojen järjestys voi olla hankala muistaa elokuvat = { "Shaun of the Dead": [2004, 8.0, 99], "Hot Fuzz": [ 2007, 7.9, 116], "The World's End": [2013, 7.0, 109] } print(elokuvat["Hot Fuzz"]) >>> [2007, 7.9, 116] print(elokuvat["Hot Fuzz"][1]) >>> 7.9

72 SANAKIRJA Käyttämällä sanakirjojen sisällä sanakirjoja arvojen tallentamiseen, tietojen noutaminen helpottuu: elokuvat = { "Shaun of the Dead": {"vuosi":2004, "imdb":8.0, "kesto":99}, "Hot Fuzz": {"vuosi":2007, "imdb":7.9, "kesto":116}, "The World's End": {"vuosi":2013, "imdb":7.0, "kesto":109} } print(elokuvat["Hot Fuzz"]) print(elokuvat["Hot Fuzz"]["imdb"])

73 MINIPROJEKTI: KEIKKALIPPUKAUPPA
Johtaja Mahamies haluaisi karsia keikkapaikkansa kulurakennetta Jotta johtaja voisi irtisanoa lipunmyyjät, hän tarvitsee toimivan lippukauppaohjelman jolla korvata ihmismyyjät Ohjelman tulee: kertoa käyttäjälle mitä keikkoja ohjelmassa on lähiaikoina kysyä mille keikalle käyttäjä haluaa lippuja kertoa käyttäjälle lippujen hinta kysyä kuinka monta lippua käyttäjä haluaa kertoa käyttäjälle lippujen yhteishinta tai ilmoittaa jos keikalle ei ole saatavissa käyttäjän haluamaa määrää lippuja


Lataa ppt "Ohjelmointia teknisille viestijöille"

Samankaltaiset esitykset


Iklan oleh Google