<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="https://peda.net/:static/537/atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>3. tunti</title>
<id>https://peda.net/id/ac3b20989d5</id>
<updated>2017-09-26T21:13:33+03:00</updated>
<link href="https://peda.net/id/ac3b20989d5:atom" rel="self" />
<link href="https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/2-tunti#top" rel="alternate" />
<logo>https://peda.net/:static/537/peda.net.logo.bg.svg</logo>
<rights type="html">&lt;div class=&quot;license&quot;&gt;Tämän sivun lisenssi &lt;a rel=&quot;license&quot; href=&quot;https://peda.net/info&quot;&gt;Peda.net-yleislisenssi&lt;/a&gt;&lt;/div&gt;&#10;</rights>

<entry>
<title>Muuttujat ja syöte</title>
<id>https://peda.net/id/c5a07cc49d5</id>
<updated>2018-12-17T12:02:02+02:00</updated>
<link href="https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/2-tunti/muuttujat-ja-sy%C3%B6te#top" />
<content type="html">Muuttuja tarkoittaa eräänlaista tietovarastoa. Jos ohjelma kysyy käyttäjältä jotain tietoa, on ohjelman tallennettava käyttäjän antama tieto johonkin, muuttujaan. Ohjelmalle annettavaa tietoa sanotaan &lt;em&gt;syötteeksi.&lt;/em&gt;&lt;br/&gt;&#10;&lt;br/&gt;&#10;Muuttujia on eri tyyppisiä, esimerkiksi:&lt;br/&gt;&#10;&lt;em&gt;str&lt;/em&gt; - merkkijono&lt;br/&gt;&#10;&lt;em&gt;int&lt;/em&gt; - kokonaisluku&lt;br/&gt;&#10;&lt;em&gt;float&lt;/em&gt; - desimaaliluku (oikeammin liukuluku)&lt;br/&gt;&#10;&lt;em&gt;boolean&lt;/em&gt; - totuusarvo&lt;br/&gt;&#10;&lt;br/&gt;&#10;Pythonilla yhtäsuuruusmerkki tarkoittaa arvon asettamista muuttujalle, esim. muuttujille x ja y voidaan ohjelmassa antaa arvot seuraavasti&lt;br/&gt;&#10;&lt;br/&gt;&#10;x = 5&lt;br/&gt;&#10;y = 6&lt;br/&gt;&#10;&lt;br/&gt;&#10;(Tässä tapauksessa muuttujien x ja y tyyppiä ei tarvi määritellä, ohjelmatulkki ymmärtää ne kokonaisluvuiksi)&lt;br/&gt;&#10;&lt;br/&gt;&#10;Muuttujien arvojen asettamisen jälkeen Python &amp;quot;käsittelee&amp;quot; muuttujia x ja y aivan kuin ne olisivat luvut 5 ja 6&lt;br/&gt;&#10;&lt;br/&gt;&#10;Esimerkiksi seuraava koodinpätkä&lt;br/&gt;&#10;&lt;br/&gt;&#10;x = 5&lt;br/&gt;&#10;y = 6&lt;br/&gt;&#10;print(x+y)&lt;br/&gt;&#10;&lt;br/&gt;&#10;tulostaa luvun 11. &lt;br/&gt;&#10;(Huomaa, että muuttujia ei laiteta lainausmerkkeihin näytölle tulostettaessa, toisin kuin merkkijonoja)&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;Syöte&lt;/b&gt;&lt;br/&gt;&#10;&lt;br/&gt;&#10;Käyttäjiltä voidaan pyytää syötettävää tietoa komennolla &lt;b&gt;raw_&lt;/b&gt;&lt;b&gt;input()&lt;/b&gt; (Pythonin versiolla 3 pelkkä input). Voit pyytää käyttäjältä nimeä (ja samalla tallettaa tuloksen muuttujaan &lt;em&gt;nimi)&lt;/em&gt; komennolla.&lt;br/&gt;&#10;&lt;br/&gt;&#10;nimi=raw_input(&amp;quot;Kerro nimesi&amp;quot;)&lt;br/&gt;&#10;&lt;br/&gt;&#10;Nyt voisit tulostaa nimesi komennolla&lt;br/&gt;&#10;&lt;br/&gt;&#10;print(nimi)&lt;br/&gt;&#10;Huomaa, että nyt ei laiteta lainausmerkkejä, koska suluissa oleva &lt;em&gt;nimi&lt;/em&gt; on muuttuja, ei merkkijono.&lt;br/&gt;&#10;&lt;br/&gt;&#10;Tyylikkäämpää olisi tulostaa teksti: Moro &lt;em&gt;Annettu_nimi&lt;br/&gt;&#10;&lt;/em&gt;&lt;br/&gt;&#10;Tämä tulostetaan komennolla&lt;br/&gt;&#10;&lt;br/&gt;&#10;print(&amp;quot;Moro &amp;quot;+nimi)&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;br/&gt;&#10;HUOM!&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;b&gt;raw_input() &lt;/b&gt;tulkitsee syötetyt tiedot aina pelkkinä merkkijonoina. Esim. syöte 34 tarkoittaa peräkkäin olevia merkkejä 3 ja 4, ei lukua kolmekymmentäneljä.&lt;br/&gt;&#10;&lt;br/&gt;&#10;Jos haluat syöttää numeroita, käytä pelkkää &lt;b&gt;input() &lt;/b&gt;komentoa, silloin Python päättelee, onko kyseessä merkkijono vai luku.&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;span class=&quot;editor underline&quot;&gt;&lt;b&gt;Oikean muuttujatyypin valinna tärkeys&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;/b&gt;&lt;/span&gt;Alla esimerkki siitä, miten Python ei ymmärrä lukuarvoa käytettäessä raw_input komentoa&lt;br/&gt;&#10;&lt;br/&gt;&#10;luku1=raw_input(&amp;quot;Anna luku &amp;quot;)&lt;br/&gt;&#10;luku2=raw_input(&amp;quot;Anna toinen luku &amp;quot;)&lt;br/&gt;&#10;print &amp;quot;Lukujen summa on &amp;quot;,luku1+luku2&lt;br/&gt;&#10;&lt;br/&gt;&#10;Mutta, koska muuttujia luku1 ja luku2 ei määritelty, Python tulkitsee ne merkkijonoiksi, ja ohjelman ajo tuottaa seuraavan tuloksen:&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;a href=&quot;https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/2-tunti/muuttujat-ja-sy%C3%B6te/summ3-jpg#top&quot; title=&quot;summ3.jpg&quot;&gt;&lt;img src=&quot;https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/2-tunti/muuttujat-ja-sy%C3%B6te/summ3-jpg:file/photo/da9ea0e74ad474ca344bc5bc88d0f81b9e60c2d4/summ3.jpg&quot; alt=&quot;&quot; title=&quot;summ3.jpg&quot; class=&quot;inline&quot; loading=&quot;lazy&quot;/&gt;&lt;/a&gt;&lt;br/&gt;&#10;Eli Python lisää merkin 5 perään merkin 7. (Ei niin kuin oli tarkoitus: lisää lukuun 5 luvun 7).&lt;br/&gt;&#10;&lt;br/&gt;&#10;Kun lukuja kysyessä huomaa asettaa muuttujatyypiksi int (eli kokonaisluku) on koodi ja ohjelman ajo seuraavat.&lt;br/&gt;&#10;&lt;br/&gt;&#10;luku1=int(raw_input(&amp;quot;Anna luku &amp;quot;))&lt;br/&gt;&#10;luku2=int(raw_input(&amp;quot;Anna toinen luku &amp;quot;))&lt;br/&gt;&#10;print &amp;quot;Lukujen summa on &amp;quot;,luku1+luku2&lt;br/&gt;&#10;&lt;br/&gt;&#10;&lt;a href=&quot;https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/2-tunti/muuttujat-ja-sy%C3%B6te/summ4-jpg#top&quot; title=&quot;summ4.jpg&quot;&gt;&lt;img src=&quot;https://peda.net/sastamala/peruskoulut/sylvaan-koulu/oppiaineet/skpn/ohjelmointi/7h/2-tunti/muuttujat-ja-sy%C3%B6te/summ4-jpg:file/photo/c4ad41555f52699e575fca6100ec152290bce208/summ4.jpg&quot; alt=&quot;&quot; title=&quot;summ4.jpg&quot; class=&quot;inline&quot; loading=&quot;lazy&quot;/&gt;&lt;/a&gt;&lt;br/&gt;&#10;&lt;br/&gt;&#10;Helpommalla olisi päässyt käyttämällä input() komentoa.&lt;br/&gt;&#10;&lt;br/&gt;&#10;</content>
<published>2017-09-19T19:08:27+03:00</published>
</entry>


</feed>