Tehtäviä

 Kerta 2 Kerta 3 Kerta 4 Kerta 5 Kerta 6 Kerta 7 Kerta 2 1. Toteuta Pythonilla seuraava ohjelma: 2. Tulosta Pythonilla seuraavat luvut allekkain a. 0­10 (eli, näyttää tältä: 0 1 2 3 4 5 6 7 8 9 10 b. 0­100 c. 50­100 3. Laske Pythonilla muuttujiin seuraavat laskutoimitukset (nimeä muuttujat kuten haluat) a. 5 plus 5 b. 3 kertaa 3 c. 7 minus 3 d. 13 jaettuna 3.0 (huomaa, piste ja nolla!) e. 3 jaettuna 2 (huomaa, ei pistettä!) f. 10 jaettuna 5.0 g. 11 jaettuna 4.0 Tarkista saamasi tulokset tulostamalla muuttujien sisällöt 4. Määritä uusi tekstiä sisältävä muuttuja, esimerkiksi sana = "valitsemasi sana" Selvennä itsellesi, mitä seuraavat asiat tekevät sana + "!" "Hän sanoi " + sana "a" in sana 5.
6.
7.
8.
"ö" in sana Tee muuttuja viisi, jonka arvo on ensiksi viisi. a. Lisää siihen kolme b. Vähennä siitä kaksi c. Kerro tulos neljällä Vaihda myös muuttujan arvoa. Tulosta sanan kaikki kirjaimet (yksi riviä kohti) seuraavista sanoista a. kissa b. pallo c. kissalla on pallo d. tulosta samat asiat ISOILLA kirjaimilla Tee ohjelma seuraaville säännöille a. Muuttujan arvo on 60 b. jos muuttujan arvo on yli 50, vähennetään muuttujasta viisi c. tulostetaan muuttujan arvo Kokeile myös muuttujan arvoilla 50, 40 ja 51 Seuraava vuokaavio esittää yksinkertaista algoritmia, toteuta se: Kokeile myös luvuilla 5, 6, 8, 9 9. Tee ohjelma seuraaville säännöille a. Muuttujan arvo on 75 b. jos muuttuja arvo on alle 60, muuttuja kerrotaan kahdella c. tulostetaan muuttujan arvo Kokeile myös arvoilla 55, 60, 59, 61 10. Tee ohjelma seuraaville säännöille: a. Muuttujan arvo on ‘kissa’ b. Jos muuttujassa on kirjain s, tulostetaan “On S!” Kokeile myös sanoilla ‘koira’, ‘pallo’ ja ‘karkki’ 11. Toteuta Pythonilla seuraava Scratch­ohjelma: 12. Laske 1 + 2 + …. + 100 summa käyttäen toistolausetta (on: 5050) 13. Matti yrittää laskea lukujen 1 … 11 kertoman, eli 1 * 2 * 3 * … * 11. Seuraava ohjelma ei kuitenkaan toimi, miksi? (älä käytä tietokonetta tämän selvittämiseen) kertoma = 0 for luku in range( 1 , 12 ): kertoma * luku kertoma = luku print kertoma 14. Matti yrittää myös laskea lukujen 1, ... , 1000 summaa, mutta ohjelma ei toimi. Miksei? (älä käytä tietokonetta tämän selvittämiseen) summa = 0 for luku in range( 1, 1001 ): summma = luku luku = luku + 1 print luku 15. Tulosta luvuista 1 , …, 10 kohdalla onko luku parillinen vai ei, eli näyttää tältä: 1 False 2 True 3 False 4 True 16. Laske ‘a’ kirjainten määrä sanoissa a. ‘kissa’ b. ‘sahatavarasatama’ 17. Laske lukujen 1, …, 10000 neljällä jaollisten lukujen määrä (on: 2500 ) 18. Laske lukujen 1, …, 10000 kolmella jaollisten lukujen summa (on: 16668333) 19. Toteuta luvuille 1, …, 100 jokaiselle seuraava sääntö: jos luku on jaollinen kolmella, tulosta fizz jos luku on jaollinen viidellä, tulosta buzz jos luku on jaollinen sekä kolmella että viidellä, tulosta fizzbuzz muuten tulosta luku itse Eli jotain tämän näköistä: 1 2 fizz 4 buzz fizz 7 8 fizz buzz Kerta 3 1. Tulosta 199 kertaa sana “Kekkonen” 2. Vuosi on karkausvuosi, jos se on jaollinen 4:llä. Kuitenkin jos vuosi on jaollinen 100:lla, se on karkausvuosi vain silloin, kun se on jaollinen myös 400:lla. ○ Tarkista onko vuosi 1999 karkausvuosi ○ Tarkista onko vuosi 2000 karkausvuosi ○ Tarkista onko vuosi 2001 karkausvuosi 3. Tulosta karkausvuodet välillä 1990 ­ 2050. 4. Tulosta seuraavat sanat käänteisesti (esimerkiksi: Matti ­> ittaM) ○ kissa ○ pallo ○ kissalla on punainen pallo 5. Matti kirjoitti ohjelman, jonka on tarkoitus tarkistaa onko luku alkuluku vai ei, eli onko se jaollinen muulla kuin itsellään ja ykkösellä. Ohjelma ei kuitenkaan toimi, miksi (älä käytä tietokonetta miettiessäsi tätä, voit tarkistaa lopuksi sillä)? luku = 11 for tarkastettava in range(2, luku ): alkuluku = False if luku % tarkastettava == 0: alkuluku = True if alkuluku: print luku, "ei ole alkuluku" else: print luku, "on alkuluku" 6. Käyttäen korjattua alkulukutarkistinta, laske kuinka monta alkulukua on välillä 2 ­ 1000. 7. Matti haluaa analysoida eduskuntavaalien tweettejä ja olettaa, että sieltä löytyisi paljon jytkyihin liittyviä lauseita. Tämän takia hän haluaa tulostaa sanan “jytky” jos annetussa tekstissä (=muuttujassa) on sana jytky. Tarkista seuraavilla lauseilla (tai keksi itse omiasi) ○ Tosi iso jytky. ○ Jytky oli perussuomalaisten vaaliase. ○ Kokoomuksen vaaliase oli työnteon korostaminen. 8. Tee ohjelma joka tarkistaa onko kirjain vokaali. Ohjelman syöte pitäisi olla seuraava: a on vokaali A on vokaali c ei ole vokaali 9. Tee ohjelma, joka laskee kuinka monta vokaalia on lauseessa. Keksi itse esimerkkilauseet. 10. Tee funktio, joka tulostaa lauseen “Tämä funktio toimii” 11. Tee funktio, joka saa syötteenä (parametrina) tulostettavan lauseen ja tulostaa sen. 12. Tee funktio, joka saa syötteenä (parametrina) tulostettavan lauseen ja kuinka monta kertaa se pitäisi tulostaa. Funktio tulostaa lauseen niin monta kertaa. 13. Tee alkulukutarkistimesta funktio, joka ottaa syötteenä (parametrina) tarkistettavan luvun ja palauttaa True jos kyseessä on alkuluku ja False jos kyseessä ei ole alkuluku. 14. Tee funktio, joka saa syötteekseen kaksi numeroa ja palauttaa niistä isomman. Esimerkiksi print isompi( 7 , 9 ) 9 15. Tee funktio tuloraja joka saa syötteekseen opiskelijan tukikuukausien määrän ( x) ja palauttaa sallitun tulon määrän näillä tukikuukausilla. Kelan sivuilla on lisätietoa tulorajojen määräytymisestä. 16. Tee funktio kaanna( sana ), joka palauttaa sanan sana käännettynä, esimerkiksi seuraavasti print kaanna( "Matti" ) ittaM 17. Tee funktio, joka laskee maksettavan veron määrän tulojen perusteella. Katso verojen määräytyminen tuloverotaulukosta . 18. Tee funktiot vokaali ja konsonantti, jotka kertovat onko syötteenä annettu kirjain vokaali tai konsonantti. 19. Käyttäen yllä olevia funktiota, tee funktio laske_sanasta( sana ) joka tulostaa sanan kokonaispituuden, vokaalien pituuden ja konsonanttien pituuden. Esimerkiksi laske_sanasta("Kissalla on viikset.") Kokonaispituus 20 merkkiä Vokaaleja 7 kappaletta Konsontantteja 10 kappaletta Kerta 4 1.
2.
3.
4.
5.
Tulosta luvut 1­500, parillisille luvuille tulosta “Hiphei” ja parittomille luvuille tulosta luku. Tee funktio, joka palauttaa kolmen luvun ryhmästä isoimman luvun. Tee funktio joka laskee suorakulmion pinta­alan. Tulosta listan lukuja = [9,7,4,2,10,15] jokainen luku (=alkio). Matti on kirjoittanut ohjelman, joka laskee lukujen summan. Se ei kuitenkaan toimi, miksi ei? lukuja = [9,7,4,2,10,15] summa = 0 for luku in lukuja: summa = luku print summa 6. Laske myös listalla olevien lukujen keskiarvo. 7. Tee funktio, joka laskee kuinka moni luku on alle kymmenen 8. Sinulla on tweettejä listassa: tweetteja = ['Elvytä vai leikkaa? #hyvinvointitalous #sostearki #vaalit2015 http://instagram.com/p/1kniojShyP/', '@VilleVirkkunen: @SannaLauslahti on myös koulutuskysymyksissä kerrassaan pätevä ja nopeaälyinen. #lauslahti2015 #kokoomus #vaalit2015', 'Potkua, tsemppiä, iloa #loppukiriin @ElisaLientola @ElliLH @EeroVainio @Mika_Kari @kalliomaa @SariNiinisto @SirkkuHilden #lahti #vaalit2015', 'Antti Rinteen piiloviesti http://jennitamminen1.puheenvuoro.uusisuomi.fi/193316­antti­ri
nteen­ ”piiloviesti” #vaalit2015'] a. Kuinka monessa tweetissä puhutaan jytkystä? b. Kuinka moni tweetti sisältää linkin? 9. Tee uusi lista ja lisää siihen luvut 3, 1, 4, 1, 5, 9, 2, ja 7. 10. Tee funktio, joka palauttaa funktion listan pienimmän luvun. Älä käytä Pythonissa valmiina olevaa min­ funktiota. 11. Sinulla on sanakirja ehdokkaat = { 'Stubb' : 'KOK', 'Rinne' : 'SDP', 'Soini' : 'PS', 'Haavisto' : 'Vihreat', 'Arhimäki' : 'VAS' } Tee Python­koodi, joka ratkaisee seuraavat ongelmat a. Tulosta ehdokkaan Rinne puolue b. Mikä on ehdokkaan Soini puolue? c. Kuinka monta ehdokasta kokoomuksella on? d. Entäs Vihreillä? 12. Matti teki ohjelman, jonka on tarkoitus kerätä talteen kaikki lauseet, joissa esiintyy sana pallo. Mikä ohjelmassa on pielessä? lauseita = [ "Kissalla on pallo.", "Pallo oli pyöreä ja värikäs.", "Kissalla tosin oli oranssi turkki." ] kiinnostavia = [] etsi = "pallo" for i in lauseita: if lauseita[i] in etsi: kiinnostavia.append( i ] print kiinnostavia 13. Kirjoita funktio, joka palauttaa aina merkkijonon pienellä kirjoitettuna. Esimerkiksi: print pieneksi("Koiratkin ovat ihan KIVOJA.") koiratkin ovat ihan kivoja. 14. Käytä tekemääsi funktiota listalle sanoja ja tallenna nämä tulokset uuteen listaan. 15. Tee funktio, joka palauttaa opiskelijan saaman asumislisän määrän. Katso tarkemmat ohjeet Kelan sivuilta. 16. Opiskelijat maksavat vuokraa 150, 200, 250, 300, 175 ja 225 euroa. Lisää nämä vuokrat listaan ja laske niistä funktiosi avulla toiseen listaan opintotuen määrät. 17. Tarkemmin, sanakirjassa on opiskelijoita ja vuokria, Maija: 150, Matti: 200, Kalle: 250, Kaisa: 225. Tee tämän sanakirjan pohjalta uusi sanakirja, jossa laskettuna opintuen asumislisä kyseisille ihmisille. 18. Sinulla on lista lukuja: 1, 4, 7, 6, 2, 9, 3, 9, 10, 2, 1, 5, 7, 6. (voit keksiä itse enemmän lukuja). Tee ohjelma, joka kertoo sinulle mikä on listan suurin ja pienin luku. Käytä toistorakennetta apuna. 19. Laske myös kunkin yksittäisen luvun esiintymismäärä. Käytä sanakirjaa apuna tässä. Kerta 5 1) Mikä on lausekkeen 2x 3 + 4x 2 + 6x + 8 suurin arvo välillä ­100, 100 (vain kokonaisluvuilla). Toteuta tämä lausekeen arvoon laskenta funktiolla. 2) Millä arvolla lausekkeen 5x 4 + 8x arvo on suurin välillä ­150, 150? Toteuta tämä lausekeen arvoon laskenta funktiolla, ja kerää kertyneet arvot listaan. Etsi tästä listasta suurin arvo, älä käytä listan järjestämistä tai max­funktiota. 3) Toteuta funktio kolmio( korkeus ), joka tulostaa korkeus­muuttujan kokoisen kolmion, esimerkiksi kolmio( 4 ) tulostaa seuraavan kuvion * *** ***** ******* 4) Oletetaan, että sinulla on funktiot naistenNimet() p
alauttaa listan naisten nimiä, esimerkiksi [‘Anna’, ‘Anne’, ...] vastaavasti funktio miestenNimet() funktio artikkelit() palauttaa listan, jossa on artikkeleiden tekstejä ja sen konservatiivi/liberaali­aseman seuraavasti: [ { ‘teksti’ : ‘Loreum ipsulam’ , ‘asenne’ : ‘liberaali’ } , { ‘teksti’ : ‘ja niin pois päin’ , ‘asenne’ : ‘konservatiivi’ } , ... ] Toteuta näin viikon 1 tapaustutkimus ja kirjoita siitä Python­ohjelmakoodi 5) Toteuta viikon 2 tapaustutkimus. Keksi itse tarvitsemasi funktiot ja niiden paluuarvot ja dokumentoi niitä (katso edellinen tehtävä). Kerta 6 Tutkitaan eduskuntavaalien 2015 Twiittejä joissa on mainittu sana jytky. Kaikki tälläiset tweetit ja niiden tekstit ovat tiedostossa jytky.txt, sen voi käydä läpi esimerkiksi seuraavalla koodilla: for rivi in open('jytky.txt'): rivi = rivi.strip() print rivi 1. Kuinka monta tweettiä on yhteensä? 2. Mistä puolueesta puhutaan eniten jytkyn yhteydessä? 3. Ovatko tweetit enemmän positiivisia vai negatiivisia? Alla oleva ohjelma antaa sinulle yksittäisen viestin mielialan, jos se on > 0 viesti oli positiivinen, jos < 0, negatiivinen import requests import re import urllib numeroerotin = re.compile(".*<b>([0­9])</b>.*<b>([+­]?[0­9])</b>.*") ## anna teksti, ja saat arvion siitä onko sen äänensävy positiivinen tai negatiivinen ## palauttaa luvun äänensävystä, negatiiviset luvut ovat negatiivista mielialaa ## kokeile itse, http://sentistrength.wlv.ac.uk/results.php def mieliala( text ): ## käydään internetissä nettipalvelussa arvioimassa tätä data = urllib.urlencode( { 'text' : text, 'submit' : 'Detect+Sentiment+in+Finnish' } ) url = 'http://sentistrength.wlv.ac.uk/results.php?' + data sivu = requests.get( url ) ## luetaan nettisivulta sekä positiivinen että negatiivinen fiilis numerot = numeroerotin.search( sivu.text ) positiivinen = int( numerot.group(1) ) ­ 1 negatiivinen = int( numerot.group(2) ) + 1 ## päätellään oliko tänä viesti nyt positiivinen vai negatiivinen if ­1.5 * negatiivinen > positiivinen: return negatiivinen else: return positiivinen print mieliala("Minä rakastan sinua, mutta inhoan nykyistä poliittista ilmapiiriä.") 4. Verottaja on luovuttanut verotustietoja avoimena datana. Tiedostossa verot_2012.csv on vuoden 2012 yritysverojen maksuun liittyviä tietoja muodossa Verovuosi;Y-tunnus;Verovelvollisen nimi;Verotuskunta;Verotettava tulo;Maksuunpannut verot yhteensä;Ennakot yhteensät;Veronpalautus;Jäännösvero a. Mikä yritys maksoi eniten veroja? b. Mikä yritys sai eniten mätkyjä? 5. Tiedostossa jytky_verkko.txt on tietoa siitä, kuka tweettasi kenellekin: 1620879505 ­> 125463318 527224088 ­> ­ 584610998 ­> ­ 138152865 ­> 283159564 Käyttäjä 1620879505 on tweetannut käyttäjälle 125463318, vastaavasti käyttäjä 527224088 ei ole kohdistanut tweettiään kellekään. A. Kuinka monta tweettiä eivät olleet kohdennettuja toiselle käyttäjälle? B. Kuka oli aktiivisin tweettaaja? C. Kenelle lähetettiin eniten tweettejä? D. Kuka oli aktiivisin yksinäinen tweettaaja (eli, kuka lähetti eniten tweettejä, joita ei kohdistettu kellekään)? Kerta 7 1. Tee ohjelma, joka tulostaa jokaisen tweeetit sanan erilliselle riville. 2. Laske kuinka monta kertaa seuraavat sanat esiintyvät näissä tweeteissä: a. ja b. eduskunta c. vaalit 3. Mikä on yleisin sana tweeteissä? 4. Kirjoita ohjelma, jolla selvität eniten vastauksia saaneen aiheen Otakantaa.fi­keskustelussa, kuten https://www.otakantaa.fi/fi­FI/Selaa_hankkeita/Suomi_oikeusvaltioiden_joukkoon/Ver
kosta_koottuja_quotoikeusmurhiaquot(27908) 5. Kirjoita ohjelma joka hakee kaikki kyseisen hankkeen keskustelu ( https://www.otakantaa.fi/fi­FI/Selaa_hankkeita/Suomi_oikeusvaltioiden_joukkoon ) ja tulostaa kunkin keskustelun eniten aiheita keränneen osion