650 likes | 660 Views
Tekninen viestintä 12.02.2013. Ohjelmointia teknisille viestijöille. Tekninen viestintä 12.02.2013. Miksi?. MIKSI?. Koodia on kaikkialla niin autoissa, pesukoneissa kuin netin kautta ohjattavissa kahvinkeittimissä
E N D
Tekninen viestintä12.02.2013 Ohjelmointia teknisille viestijöille
Tekninen viestintä12.02.2013 Miksi?
MIKSI? • Koodia on kaikkialla niin autoissa, pesukoneissa kuin netin kautta ohjattavissa kahvinkeittimissä • Monet tuotteet, joita tekniset kirjoittajat kohtaavat, toimivat jonkin ohjelmakoodin perusteella • Tuotteisiin tutustuminen on helpompaa jos ymmärtää niiden toimintalogiikkaa pintaa syvemmältä
MIKSI? • Kunymmärtääohjelmoitaessakäytettäviäajatusmalleja, voiymmärtäämyösinsinöörienaivoituksia – kulttuurienvälisetkuilutkaventuvat • Automatisointiajattelu (“computational thinking”) antaahyväteväätkaikentyyppiseenongelmanratkaisuun
MIKSI? • Teknisen kirjoittajan työ ei ole silkkaa glamouria, vaan sisältää monesti itseään toistavia työvaiheita • Parilla harkitulla koodirivillä voi säästää useita minuutteja päivittäistä työaikaa, joskus jopa tunteja • Jos pitää ongelmanratkaisusta ja päättelytehtävistä, ohjelmointi voi olla myös hauskaa(!)
Tekninen viestintä12.02.2013 Kurssin sisältö
MITÄ KURSSILLA OPITAAN? • Ohjelmoinnin peruskäsitteitä • Perustason ohjelmointia • Automatisointiajattelua - minkälaisia tehtäviä kannattaa ulkoistaa tietokoneelle ja kuinka se tapahtuu
MUUTTUJAT • Muuttujat ovat jokaisen ohjelmointikielen peruselementti • Muuttujat toimivat kuin muuttolaatikot – ne voi sulloa täyteen tavaraa ja kirjoittaa päälle virtuaalitussilla mitä laatikossa on
NUMEROIDEN KÄSITTELY • Numeroiden pyörittely ja laskutoimitusten suorittaminen sujuu Pythonilla kuin tanssi, kun apuna käyttää muuttujia • Tutustutaan pikaisesti kuinka Pythonia voi käyttää laskutehtävien ratkomiseen
TEKSTIN KÄSITTELY • Tekstin avulla käyttäjälle voi kertoa ohjelman toiminnasta ja käyttäjä voi syöttää tekstiä ohjelman käsiteltäväksi • Perehdytään siihen kuinka Pythonilla voi käsitellä ja luoda tekstiä
OHJAUSRAKENTEET • Harva ohjelma toimii joka tilanteessa samalla tavalla • Ohjausrakenteiden avulla ohjelmat saadaan toimimaan eri tavoilla käyttäjältä saadun palautteen tai käsiteltävän materiaalin piirteiden perusteella
TIETORAKENTEET • Tietokoneet pystyvät lukemaan laajoja tietomääriä nopeasti • Jotta tietomassat saisi järjestykseen ja helposti ihmisten tulkittavaan muotoon, kannattaa tieto järjestellä Pythonin sisäänrakennettuihin tietorakenteisiin
SILMUKAT • Useimpien asioiden jatkuva toistaminen on tylsää, joten ne kannattaa automatisoida silmukoiden avulla • Pythonin silmukkarakenteiden avulla asioiden toistaminen on helppoa ja hauskaa
FUNKTIOT • Funktiot (eli proseduurit, eli metodit) ovat itsenäisiä ohjelman osia, jotka suorittavat jonkun tietyn tehtävän • Funktiot säästävät aikaa ja vaivaa. Funktiot mahdollistavat sen, että voit määrittää useasti tarvitsemasi ohjelman osan kerran ja käyttää sitä aina tarvittaessa kutsumalla luomaasi funktiota
FUNKTIOT • Sen lisäksi, että funktioita voi määrittää itse, Pythonissa on lukuisia valmiita funktioita eri tarkoituksiin: • Tekstintulostaminen ja muotoilu • Tiedostojen käsittely • Matemaattiset funktiot • Satunnaislukujen luominen • Sarjojen luominen
TIEDOSTOJEN KÄSITTELY • Pythonilla voit luoda, lukea ja muokata tekstitiedostoja • Pythonin avulla voit myös kopioida, siirtää ja poistaa tiedostoja ja käsitellä pakattuja tiedostoja Pythonilla • Python tarjoaa myös moduuleja, koodikirjastoja, joiden avulla voit käsitellä esim. XML-tiedostoja
OLIO-OHJELMOINTI • Jos aikaa riittää, tutustutaan olio-ohjelmoinnin perusteisiin; mitä oliot ovat ja mitä iloa niistä on ihmiselle
KÄYTÄNTÖJÄ • Ohjelmointikieliä – kuten kieliä yleensä – oppii parhaiten käyttämällä niitä aktiivisesti • Kurssilla pyritään taustoittamaan asiat teorialla ja testaamaan teoriaa heti käytännössä
KÄYTÄNTÖJÄ • Ohjelmointia jo osaaville on tarjolla kaksi vaihtoehtoa: • Laadi lopputyö ja siihen liittyvä dokumentaatio, ja kerää suoritusmerkintä • Seuraa kurssia ja Sivuraidetta™. Sivuraiteella voit tutustua XSLT:n alkeisiin ja nähdä miten XML-dokumentteja voi muokata eri muotoihin tehokkaasti
Johdanto Ensiaskeleet Pythonin parissa
PYTHON! • Kurssilla käytetään Python-ohjelmointikieltä • Lähdekoodi avointa • Kehitetty vuodesta 1991 • Helppoa ja hauskaa!
PYTHON! • Laadukas, suosittu, johdonmukainen ja monipuolinen kieli • Suunniteltu helppokäyttöiseksi ja selkeäksi • Yksinkertainen syntaksi. Kielen perusteet on helppo oppia ja muistaa • Verkossa paljon aloittelijoille sopivaa opetusmateriaalia
PYTHON JA IDLE • Pythonia käytetään kurssilla pääasiassa IDLE-kehitysympäristön kautta • IDLEä käytettäessä komentoja voi kirjoittaa suoraan komentotulkkiin tai erillisiin tiedostoihin IDLEn tekstieditorilla
PYTHON JA IDLE • Erillisiin tiedostoihin tallennettuja Python-skriptejä voi kopioida toisille tietokoneille ja käyttää siellä • Python-tiedostojen nimissä isot ja pienet kirjaimet ovat merkityksellisiä ja tiedostopäätteen tulee olla .py
PYTHON JA IDLE • Tekstieditorilla tuotetut ohjelmat on helppo testata IDLEn komentotulkissa • Jos suoritettavassa tiedostossa on virheitä, IDLE huomauttaa niistä ja kertoo virheen sijainnin
PYTHON JA IDLE • Tekstieditorilla laaditut komennot eivät automaattisesti kirjoita mitään komentotulkkiin • Komentotulkkiin voi tulostaa tekstiä tai numeroita print()-funktion avulla
Tekninen viestintä12.02.2013 Muuttujat
MITÄ MUUTTUJAT OVAT? • Muuttujat ovat kuin laatikoita – niihin voi varastoida tietoa ja kirjoittaa päälle nimen joka kertoo mitä muuttujaan on varastoitu • Tallennettuun arvoon pääsee tämän jälkeen käsiksi nimen avulla numeroYksi = 1 toivepalkka = 6000
MITÄ MUUTTUJAT OVAT? • Pythonin muuttujat ovat dynaamisesti tyypitettyjä. • Kun käyttäjä luo muuttujan, sen tyyppiä ei tarvitse määrittää – komentotulkki päättelee muuttujan tyypin ohjelmaa suoritettaessa • Tyypin voi myös tarkastaa type()-funktion avulla numeroYksi = 1 toivepalkka = 6000 type(numeroYksi) >>> <class 'int'> numeroYksi = "Yksi" type(numeroYksi) >>> <class 'str'>
MITÄ MUUTTUJAT OVAT? • Muuttujien nimet kannattaa valita huolella • Hyvästä muuttujan nimestä täytyy pystyä päättelemään millaista tietoa muuttujaan on tallennettu • Muuttujien nimissä: • Ensimmäinen kirjain ei saa olla numero • Ei saa käyttää välilyöntejä • Isot ja pienet kirjaimet ovat merkityksellisiä
MITÄ MUUTTUJAT OVAT? • Muuttujille voi tallentaa arvoja myös toisten muuttujien avulla • Python tarkastaa aluksi toisten muuttujien arvot ja tallentaa sitten esim. yhteissumman uuden muuttujan arvoksi eka = 35 toka = 7 yhteensa = eka + toka print(yhteensa) >>> 42
HARJOITUS: MUUTTUJAT • Tee megavisa osoitteessa: https://goo.gl/forms/OQZCZOjysi5e0sWs2 • Kirjoita ohjelma: • Jossa on kolme muuttujaa; kahdessa ensimmäisessä muuttujassa on molemmissa numero ja kolmannen muuttujan arvo on kahden ensimmäisen muuttujan summa • Joka tulostaa kolmannen muuttujan arvon print()-funktion avulla
Tekninen viestintä12.02.2013 NUMEROIDEN KÄSITTELY
NUMEROT • Laskutoimituksissa käytetään (ainakin osin) tuttuja operaattoreita: • 3 + 2 yhteenlasku • 5 - 2 vähennyslasku • 5 * 11 kertolasku • 16 / 2 jakolasku • 9 % 2 jakojäännös
NUMEROT • Pythonissa käytetään kahta eri numerotyyppiä, kokonaislukuja (int, integer) ja desimaalilukuja (float) • Desimaaliluvut ovat tarkempia ja vievät siten enemmän muistia
NUMEROT • Laskujärjestyksen voi määrittää tai sitä voi tarkentaa suluilla: print(8 + 8 * 3 + 2 + 9) >>> 43 print ( (8 + 8) * (3 + 2) + 9 ) >>> 89
MODUULIT • Tavallisten laskutoimitusten suorittamiseen tarvittavien työkalujen lisäksi Pythoniin sisältyy monia muita lukujen käsittelyyn tarvittavia työkaluja • Monet näistä työkaluista on koottu omiksi moduuleiksi, joita voi tuoda osaksi omia ohjelmia
MODUULIT • Moduulit sisältävät aina jonkun tietyn erityisalueen käsittelyyn tarvittavia funktioita • Moduuleja voi tuoda osaksi omaa ohjelmaa import-komennon avulla import random import math
MODUULIT • Kun moduuli on tuotu ohjelmaan, voit hakea tietoa siitä dir()-ja help()-funktioilla • dir() listaa käytettävissä olevat funktiot ja attribuutit, help() kertoo kattavammin näistä ja niiden käytöstä import random import math help(random) dir(random)
MODUULIT • Moduulintarjoamiafunktioitakäytetäänpistenotaationavulla • Ensinohjelmallekerrotaanmistämoduulistahaluatpoimiafunktionjapisteenjälkeenilmoitetaanhaluttufunktiojasenparametrit import random import math random.randint(1,10) >>> 7
MINIPROJEKTI: PALKANKOROTUSAUTOMAATTI • Johtaja Mahamies on kyllästynyt miettimään kuinka suuren palkankorotuksen hän myöntää alaisilleen • Rakennetaan johtajalle ohjelma, joka arpoo alaiselle korotuksen ja tulostaa uuden palkan ruudulle
HARJOITUS: NUMEROT • Tee megavisa osoitteessa: https://goo.gl/forms/mqKMUQdfSq7zuOD93 • Kirjoita ohjelma, jossa • on muuttuja a, jonka arvo on 25432 plus 2321 • on muuttuja b, jonka arvo on 524288 jaettuna 64:llä • on muuttuja c, jonka arvo on jakojäännös kun 4096 jaetaan kolmella • on muuttuja d, jonka arvo on muuttuja b plus muuttuja c • korvaat muuttujan a arvon muuttujan d arvolla • tulostat lopuksi muuttujan a arvon
Tekninen viestintä12.02.2013 TEKSTIN KÄSITTELY
TEKSTI PYTHONISSA • Teksti esitetään Pythonissa merkkijonoina • Merkkijono määritetään käyttämällä lainaus- tai puolilainausmerkkejä: "Katkarapu" lause = "Tämä on merkkijono" toinenLause = 'Tämäkin vielä'
Merkkijonon merkitseminen • Merkkijono täytyy aloittaa ja päättää samantyyppisellä lainausmerkillä: • Jos tulostettavassa lauseessa on puolilainausmerkki, voidaan lause ympäröidä lainausmerkein ja päinvastoin: "Ei näin' "I'll Be Back" '"I am so happy for you", she said'
TEKSTI PYTHONISSA • Usean rivin mittaisia merkkijonoja – eli merkkijonoja joissa on rivinvaihtoja – merkitään kolmella lainausmerkillä: • """Kolmea lainausmerkkiä käytettäessä merkkijonoon voi myös huoletta "lisätä" lainausmerkkejä 'tai' puolilainausmerkkejä!"""
TEKSTI PYTHONISSA • Tekstin tulostaminen onnistuu print()-funktion avulla: • tulosta = "Tulostettava tekstinpätkä" • print (tulosta) • print("Tulosta tämäkin")
KOMMENTIT PYTHONISSA • Python-skripteihin voi tallentaa kommentteja • Kommentit kuvaavat ohjelman toimintaa, eikä Python käsittele kommentteja kun ohjelmaa suoritetaan • # Luodaan muuttuja "tulosta" • tulosta = "Tulostettava tekstinpätkä" • # Tulostetaan muuttujan arvo • print (tulosta)
TEKSTIEN YHDISTÄMINEN • Tekstiä ja muitakin keskenään samantyyppisiä tietoja voi yhdistää toisiinsa + -operaattorin avulla • Tekstin toistaminen useaan kertaan onnistuu puolestaan * -operaattorin avulla tekstiA = "Pala tekstiä" tekstiB = "Toinen pala" print (tekstiA + tekstiB) >>> "Pala tekstiäToinen pala"
TEKSTIEN YHDISTÄMINEN • Tekstiä ja numeroita ei voi suoraan yhdistää toisiinsa • Yksi tapa tekstin ja numeroiden yhdistämiseen on numeroiden muuntaminen merkkijonoksi str()-funktion avulla tekstiA = "Pala tekstiä" numeroA = 4 yhdistelma = tekstiA + str(numeroA) print (yhdistelma) >>> "Pala tekstiä4"