1. Muuttujan teko
2. Tiedon kysyminen käyttäjältä (input)
3. muuttujan tulostaminen (print)
4. Muuttujan tyypit
5. Satunnaisluvut
6. Listat
Muistista varataan tilaa asioiden muistiinpanemiseen tekemällä muuttuja. Muuttujia siis luodaan käskyillä
energia = 100 #tehdään energia-niminen kokonaislukumuuttuja
viesti="tässäpä tekstiä muistiin" #Tekstijono -muuttuja
Muuttujan nimeämisessä huomioitavaa: Varatut sanat, numerot, kirjaimet, alaviiva_ ei ääkkösiä, nimi ei voi alkaa numerolla.
Käyttäjältä pyydetään tietoa (joka säilötään muuttujiin) input-komennolla.
luku1 = input("Anna jokin luku :") #luetaan käyttäjältä tietoa luku1 -muuttujaan
nimi = input("Anna nimesi") #luetaan käyttäjältä tietoa nimi -muuttujaan
Tehtävä: Tee ohjelma joka kysyy nimeäsi ja tulostaa "Tervetuloa Matti!"
Syöte on oletuksen merkkijono, joten muutetaan se sopivaan lukumuotoon int ja float -komennoilla.
arvo = "313" #tekstimuuttujan luominen
print arvo #tulostaa 313
print arvo*2 #tulostaa 313313
print int(arvo)*2 #tulostaa 626, koska muutetaan teksti kokonaisluvuksi (integer)
esim.
arvo=input(anna luku) #annetaan luku 3,84
float(arvo) #3. HUOM! desimaaliPISTE
int(arvo) #3 pyöristyssäännöt eivät päde, vain kokonaislukuosa
Jos halutaan vastauksesta kokonaisluku voidaan input-käskyyn lisätä int- tai float- muunnos
luku = input("anna luku")
luku = int(luku)
TAI
luku = int(input("anna luku"))
Harjoituksissa tarvitaan satunnaislukuja. Satunnaisluku- käsky tuodaan random-kirjastosta (kts. kohta 2.7.)
import random
...
luku = random.randint(0,100) #random-kirjastosn randint -käsky arpoo luvun parametrien väliltä.
print("ohjelma arpoi luvun",luku)
6. Listat
Listoihin voi tallentaa samaan objektiin liittyviä tietoja (samaa tyyppiä). hyvä opas on täällä:
Uusi lista tehdään komennolla:
nimi = [] #Tyhjä lista
tai nimi = [3,2,1,0]
Listan alkioon viitataan komennolla nimi[0], nimi[1]... esim. nimi[2] palauttaa alkion 1.
Koko listan jokaisen alkion voi käydä läpi range*-komennolla
for x in nimi:
print x #tulostaa kaikki alkiot järjestyksessä
TAI
for i in range (0,len(lista)):
print nimi[i]
range -komennolla on kolme käyttötapaa a) range(4) => 0,1,2,3 b) range (3,6) => 3,4,5 c)range(10,20,2) =>10,12,14,16,18
Tehtäviä:
T3.1. Kilometrit maileiksi
Ohjelma kysyy matkan kilometreinä ja tulostaa matkan maileina (kilometrit / 1.609)
T3.2 Palkanlaskija
Tee ohjelma, joka kysyy työntekijän työtunnit, tuntipalkan ja veroprosentin sekä tulostaa palkan (työtunnit*tuntipalkka) ja käteen jäävän palkan (Palkka-Palkka * veroprosentti /100)
T3.3. 2. Asteen yhtälön ratkaisu
Ohjelmalle syötetään 2. asteen yhtälön ax^2+bx+c=0 kertoimet a, b ja c. Ohjlema palauttaa 2. asteen yhtälön ratkaisukaavalla lasketut ratkaisut. 2. asteen yhtälön ratkaisukaavat ovat
(-b+math.sqrt(b*b-4*a*c))/(2*a) ja
(-b-math.sqrt(b*b-4*a*c))/(2*a)
Ekstra! Jos neliöjuurilauseke on negatiivinen (<0), niin tällöin ei ole ratkaisua. Ohjelmoi if -lauseke, joka testaa että yhtälöllä on ratkaisu.
T3.4 Listat
Tutustu allaolevaan lista -ohjelmaan. Muokkaa ohjelmaa lisäämällä siihen toinen lista nimeltä "hinta". Lisää while- toistorakenteeseen nimen kysymisen perään hinnan kysyminen. Lisää annettu hinta "hinta"-listaan.
Lopuksi tulosta tuotteen hintoineen print(tuotteet[i],"\t\t",hinta[i]) ja ostosten kokonaishinta.
(Ratkaisu löytyy "Ratkaisu"-sivulta.
T3.5 Ekstra: Laivanupotus
Tutustu Ratkaisut -sivulla olevaan laivanupotuspelin koodiin. Muokkaa koodia niin että peliin tulee useampia "maaleja".