Python-koodaus: Muuttujat

Samankaltaiset tiedostot
Oletus Sinulla on Raspin Geany-IDE konfiguroituna toimimaan SSH-etäkäytössä.

Java-kielen perusteet

Raspin Geany-IDE:n etäkäyttö

Johdatus Ohjelmointiin

Java-kielen perusteet

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 4: Ohjelmointi, skriptaus ja Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

Ohjelmoinnin perusteet Y Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Javan perusteet. Ohjelman tehtävät: tietojen syöttö, lukeminen prosessointi, halutun informaation tulostaminen tulostus tiedon varastointi

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

Python-ohjelmointi Harjoitus 2

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjausjärjestelmien jatkokurssi. Visual Basic vinkkejä ohjelmointiin

Ohjelmoinnin perusteet Y Python

Alkuarvot ja tyyppimuunnokset (1/5) Alkuarvot ja tyyppimuunnokset (2/5) Alkuarvot ja tyyppimuunnokset (3/5)

811120P Diskreetit rakenteet

Ohjelmoinnin perusteet Pythonilla. Teemu Sirkiä, 2015

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

VIII. Osa. Liitteet. Liitteet Suoritusjärjestys Varatut sanat Binääri- ja heksamuoto

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Raspin Geany-IDE:n etäkäyttö Windows-ympäristössä

Ohjelmoinnin peruskurssi Y1

Tietotyypit ja operaattorit

Ohjelmoinnin perusteet Y Python

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 5: Python

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Kirjoita oma versio funktioista strcpy ja strcat, jotka saavat parametrinaan kaksi merkkiosoitinta.

Ohjelmoinnin perusteet Y Python

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

1. Kun käyttäjä antaa nollan, niin ei tulosteta enää tuloa 2. Hyväksy käyttäjältä luku vain joltain tietyltä väliltä (esim tai )

Ohjelmoinnin perusteet Y Python

Perusteet. Pasi Sarolahti Aalto University School of Electrical Engineering. C-ohjelmointi Kevät Pasi Sarolahti

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. salinovi tai syntymapaiva

6. Muuttujat ja Java 6.1

Ohjelmoinnin perusteet Y Python

Muuttujatyypit ovat Boolean, Byte, Integer, Long, Double, Currency, Date, Object, String, Variant (oletus)

1. luento. Ohjelmointi (C) T0004 Syksy luento. 1. luento. 1. luento. 1. luento. kurssin sisältö ja tavoitteet työmuodot.

Kemian tekniikan kandidaattiohjelman ohjelmointikurssi (5 op)

Pythonin Kertaus. Cse-a1130. Tietotekniikka Sovelluksissa. Versio 0.01b

Ohjelmoinnin perusteet Y Python

Taulukot. Taulukon määrittely ja käyttö. Taulukko metodin parametrina. Taulukon sisällön kopiointi toiseen taulukkoon. Taulukon lajittelu

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Harjoitus 6 (viikko 42)

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Harjoitus 6. Käytä String-luokasta vain charat- ja length-operaatioita.

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

5.6. C-kielen perusteet, osa 6/8, Taulukko , pva, kuvat jma

Ohjelmoinnin perusteet Y Python

7. Näytölle tulostaminen 7.1

Ohjelmoinnin peruskurssi Y1

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Jukka Helle

Ohjelmoinnin perusteet Y Python

ITKP102 Ohjelmointi 1 (6 op)

Ohjelmoinnin perusteet Y Python

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Merkkijono määritellään kuten muutkin taulukot, mutta tilaa on varattava yksi ylimääräinen paikka lopetusmerkille:

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Ohjelmoinnin peruskurssi Y1

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

2. Sulautettu järjestelmä ja mikro-ohjain , pva

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Harjoitus 1 -- Ratkaisut

Merkitse kertolasku potenssin avulla ja laske sen arvo.

Valokuvien matematiikkaa

Sisällys. 6. Muuttujat ja Java. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujien nimeäminen. Muuttujan tyypin määritys. Javan tietotyypit:

Kielioppia: toisin kuin Javassa

System.out.printf("%d / %d = %.2f%n", ekaluku, tokaluku, osamaara);

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin peruskurssi Y1

Johdatus ohjelmointiin / Lausekielinen ohjelmointi 1 & 2

Ohjelmoinnin perusteet Y Python

Tietotyypit ja lausekkeet. Lewis & Loftus & Jukka Juslin 1

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

Ohjelmoinnin perusteet Y Python

20. Javan omat luokat 20.1

Ohjelmoinnin perusteet Y Python

Sisällys. 20. Javan omat luokat. Java API. Pakkaukset. java\lang

17. Javan omat luokat 17.1

Transkriptio:

Python-koodaus: Muuttujat PUNOMO NETWORKS OY 24.7 && 4.8.2016 pva Oletus Sinulla on Raspin Geany-IDE konfiguroituna toimimaan SSH-etäkäytössä. Tämä on Punomon Python koodikoulun toinen oppitunti. Käynnistä Mint-koneessa Terminal-ohjelma. Anna komento: ssh X pi@<koneesi IP osoite> geany Komento käynnistää Raspi-koneessa Geanyn ja kaappaa sen verkon kautta Mintin ruutuun. Muuttuja, variable Tietokone tekee monenlaisia asioita ohjelman ohjaamana; esim. se lukee lämpötila-anturin arvoja, muuttaa laskemalla sen arvon Celsius-asteiksi, vertaa sitä ennalta annettuun raja-arvoon ja jos arvo ylittää sen, kytkee transistorikytkimen kautta tuulettimen moottorin pyörimään. Näiden tehtävien suorittamiseen tietokone tarvitsee ohjelmakoodin lisäksi tietoa, dataa eli numeroita ja merkkejä ja vielä paikan jonne data tallennetaan. Työstettävälle tiedolle pitää olla jokin varastopaikka ja sehän on tietokoneen käyttömuisti, RAM (Random Access Memory). Datatieto voi olla joko pysyvää tai muuttuvaa. Toiset tiedot muuttuvat ja niitä on voitava muuttaa milloin tahansa ohjelman aikana. Luetaan vaikkapa lämpötilatieto kerran minuutissa. Muuttuvat tiedot tallennetaan muuttujiin. Muuttujat ovat tiedon tallennukseen varattuja käyttömuistin (RAM) lokeroita, joihin voi tallettaa ohjelmassa tarvittavia lukuarvoja, numeroita, merkkejä jne. Muuttujan arvo muuttuu, tai saattaa muuttua, ohjelman ajon aikana. Numeerinen muuttuja, numeroita joita voidaan käyttää laskutoimituksiin. Merkkijonomuuttuja, nimensä mukaan sisältää merkkejä, siis tekstiä. Kun muuttuja otetaan käyttöön, sitä ei Pythonissa erikseen esitellä, vaan annetaan sille nimi ja samalla annetaan ensimmäinen arvo. Tuo arvo määrää muuttujan tyypin automaattisesti, erillistä määritystä siihen ei tarvita. Jos alkuarvolla ei ole merkitystä, niin silloin sille annetaan arvo nolla. Muuttujan määritys varaa tilaa muuttujalle RAM-muistista ja yhdistää nimen varattuun tilaan. Muistipaikan koko ja se mitä muuttujalle voidaan tehdä, määräytyy tietotyypin perusteella. Muuttujat ovat olennaisia asioita kaikissa ohjelmointikielissä. Me kun tullaan tekemään laiteläheistä koodia, tutkitaan muistin rakenne oikein perusteellisesti jotta käsite muuttuja - muistipaikka selviää, kts tämän dokumentin viimeinen sivu. Ohjeita muuttujan nimeämiseen: Nimen kelvolliset merkit ovat a - z, A - Z, numerot ja alaviivat. Et saa käyttää öökkösiä, eli skandinaavisia ä, ö eikä å. Ensimmäinen merkki on oltava kirjain, mieluusti pieni. Python ymmärtää isot ja pienet kirjaimet eri merkeiksi. Ole niissä tarkkana. Käytä muuttujien nimissä mieluusti vain pieniä kirjaimia. Välilyönti (tyhjä paikka) ei ole sallittu. 1

Alaviivaa _ käytetään jos nimi on kaksiosainen, kuten oma_nimi, ovi_kytkin. Muuttujan nimenä kannattaa käyttää jotain sen merkitystä tai tehtävää kuvaavaa nimeä. Jos esim. muuttujaan tallennetaan virta-arvoja, kannattaa antaa muuttujalle nimi virta, tasavirta, kollektorivirta. Vältä käyttämästä muuttujan nimenä pelkkää kirjainta. Hyvin valittu nimi on kuin ylimääräinen kommenttirivi, se kertoo heti lukijalle mistä on kysymys. Tietotyypit: numerotyypit Tietotyypit Toiminto Miten käytetään Integer, int, kokonaisluku tallentaa kokonaislukuja 1, 222, 333 Long, pitkä kokonaisluku suuri kokonaisluku Float, liukuluku, desimaaliluku tallentaa desimaalilukuja 3.14, 5.55, 66.777 Operaattorit Operaattori Nimi Selite Esim. = sijoitus sijoittaa arvon muuttujalle luku=3, sijoittaa lukumuuttujan arvoksi 3 + plus yhteenlasku 2+4 antaa arvon 6 - miinus vähennyslasku 9-2 antaa arvon 7 * tulo kertolasku 3*4 antaa arvon 12 ** potenssi potenssiin korotus 2**3 antaa arvon 8 / jako jakolasku 4/3 antaa arvon 1.3333 % jakojäännös jakolasku, palauttaa jakojäännöksen 12%5 antaa arvon 2 Summa ja erotus ovat helppoja: Jos kaikki laskuoperaatiossa olevat muuttujat ovat kokonaislukuja, on tulos myös kokonaisluku. Jakolasku on ongelma: Jos jakolaskun jakaja tai jaettava (tai molemmat!) ovat liukulukuja, tulee tulokseksi myös liukuluku. Jakolaskun jakojäännös palautetaan jos käytetään %-operaattoria. Avainsanat, keywords Python 2:ssa on 31 avainsanaa. Niistä tulkki tunnistaa ohjelman rakenteen. Avainsanoja ei saa käyttää muuttujan nimenä. Python 3:ssa exec ei ole avainsana, mutta nonlocal on. and del from not while as elif global or with assert else if pass yield break except import print class exec in raise continue finally is return def for lambda try Tuo listan osaaminen on tärkeää ja sen opit pikkuhiljaa opintojen edetessä. 2

Tiedon lukeminen käyttäjältä Otetaan tämäkin mukaan tässä yhteydessä, koska sitä tarvitaan laiteläheisessä ohjelmoinnissa. Käyttäjältä pyydetään tietoja input-käskyllä. luku = input ('Anna luku: \n') print 'Annoit luvun', luku Vastaus palautetaan aina merkkijonona, vaikka käyttäjä antaisikin luvun. Siksi, ennen kuin käyttäjältä saatuja tietoja voi käyttää laskutoimituksissa, tulee tehdä tyyppi-muunnos merkkijonosta luvuksi. Selviää harjoituksessa. Erikoismerkki keno-än, \n, input-käskyn lopussa tarkoittaa rivinvaihtoa. Näin kysymys ja vastaus menevät eri riveille. Kirjoita koodi ja talleta nimellä muuttuja.py Muuttujat määritellään Laskutoimitukset Tulostus Aja ohjelma klikkaamalla Geanyn suorita-nappia. 3

Raspin LXTerminal Tulostamista varten käynnistyy LXTerminal-ohjelma ja sen käyttöliitäntä tulee esiin Linux Mintkoneen ruudulla. Kun muuttujaan asetetaan arvo, se päättelee oman tyyppinsä asetetun arvon perusteella. Muuttujan tyyppi Python-kielessä ei ole pysyvä. Kun tyyppi on asetettu, voidaan sitä muuttaa asettamalla sen arvo uudestaan. Esimerkiksi tekstimuuttuja voi muuttua kokonaislukumuuttujaksi. Muuttujan nimessä ei saa olla tiettyjä erikoismerkkejä, kuten huutomerkkejä (!). Ääkköset eivät ole sallittuja. Välilyönti ei ole sallittu, sillä se erottaa komentojen osat toisistaan. Välilyönti kannattaa korvata alaviivalla _. Huom! Muuttujien nimien ensimmäinen kirjain kirjoitetaan aina pienellä! Numeroita voidaan käyttää muuttujan nimessä, kunhan nimi ei ala numerolla. Nimi ei myöskään voi koostua pelkistä numeroista. Merkkijono on jono peräkkäisiä merkkejä. Merkkijono on vakio, sen arvoa ei voi jälkeenpäin muuttaa. Niitä on kolmenlaisia, mutta meille riittää tässä vaiheessa kaksi: 1. 'Raspi-tietokone' - merkkijono sitaattien välissä. 2. RaspberyPi - merkkijono lainausmerkkien välissä. Tehtävä Googlaa ASCII, suomenkielisiltä sivuilta. Selvitä mitä ovat aakkoset, isot ja pienet, ASCII-koodilla esitettynä. 4

RAM-muistisolu ja muuttuja SRAM-muistisolu on rakennettu transistoreista (kiikku, flip-flop) ja kukin solu voi säilöä yhden bitin, ykkösen tai nollan. Muistisääntö: kiikun lähtötila on kiikun tai kaakun, 1 tai 0. Muistisolun kiikku/flip-flop asettuu satunnaisesti joko 1- tai 0-tilaan kun käyttösähköt kytketään. Eli muistipaikalla /muuttujalla on jokin arvo ennen sen käyttöä, ellei sitä nollata tai aseteta siihen jotain arvoa. Kun sähköt katkeavat, bitit siirtyvät bittien taivaaseen. Osoite tulee CPU:lta Muuttuja - muistipaikka Käyttöjärjestelmä antaa sille nimen Osoite hexa-lukuna 0011 0100 hexalukuna 34 ASCII-arvona numero 4 Data tulee joko CPU:lta tai ulkoisilta laitteilta, netistä... piirros J.Mansikkaviita SRAM-muistin rakenne-idea. Muistia käsitellään 8-bitin palikkoina. Kuvan mukaan kuhunkin kahdeksan bitin säilöön päästään käsiksi osoiteväylän kautta. Osoiteväylä on 16/32/64-rinnakkaista johdinta, joissa voi olla joko ykkönen tai nolla, +5V (+3,3 V) jännite tai 0V. Bittikuvion perusteella muistin sisällä oleva osoitekooderi pääsee kiinni jokaiseen muistiriviin (tässä 8-bitin pakettiin). Jos osoiteväylä on 16-johdinta, muistipaikkoja voidaan osoittaa 2 potenssiin 16 eli 65536 jos osoiteväylä on 32-johdinta, niin muistipaikkoja on yli 4 miljoonaa. Mikroprosessori, CPU, Central Processing Unit, määrää millainen bittikuvio pannaan väylälle, se ohjaa WR-kirjoitus- ja RD-lukulinjoja joilla määrätään datan kulkusuunta, luetaanko (kopioidaan) muistipaikan sisältö vai kirjoitetaanko se uusiksi. Muistipaikalle annetaan nimi, jolloin sitä on helpompi käyttää. Python (yhdessä käyttöjärjestelmän kanssa) tietää nimen perusteella mikä bittikuvio pitää osoiteväylälle CPU:n toimesta asettaa jotta ko. muistipaikka=muuttuja löytyy. 5