Python-ohjelmointi

Yläkoulun matematiikassa opetettavia ohjelmoinnin asioita

Yläkoulun matematiikassa on hyvä osata ohjelmoinnista seuraavat perusasiat. Näistä on valmiit tehtävät matematiikan kirjassa ja tämä sivu on tukena kirjan tehtävien tekemiseen.
  1. Python editorit
  2. Merkkijonon tulostaminen
  3. Muuttujat, muuttujatyypit ja tyypinmuunnos
  4. Syöte funktiolla input()
  5. Vertailu
  6. Valintarakenteet if, if-else ja if-elif-else
  7. Toistorakenteet While ja For
  8. Pyöristäminen funktiolla round()
  9. Listat
  10. Lisäkirjastot: satunnaisluku, murtoluku ja turtle
  11. Lisää Python-tietoa

1. Python Mu-editori, Trinket.io tai joku muu
Jos tietokoneessa ei ole Python-editoria, silloin voi käyttää WWW-sivulla toimivaa editoria, esimerkiksi Trinket.io. Trinket löytyy tätä kirjoitettaessa osoitteesta https://peda.net/jyvaskyla/ict/ohjeet/pop/to Suosittelen kuitenkin tietokoneeseen asennettavaa editoria ja WWW-editori on hyvä hätävara. Tietokoneeseen asennettavista editoreista suosittelen Mu-editoria. Kivijärven tietokoneissa useassa on Mu-editori.

Python ja syntaksi

Ohjelmoinnissa syntaksi on tärkeä ja pienikin virhe estää ohjelman oikean toiminnan. Aloittelijalle yksi Pythonin yllätyspaikka voi olla se, että valintarakenteessa ja toistorakenteessa sisennys pitää olla tarkasti oikea tai muuten ohjelma ei toimi.


2. Merkkijonon tulostaminen
  • # on kommenttimerkki, jonka teksti ei näy ohjelmassa
  • " " merkkien väliin tulee normaali teksti
  • """ """ merkkien väliin voi laittaa mitä tahansa merkkejä mukaan lukien merkin " tai rivinvaihdon
  • Funktio print() tulostaa merkkijonon
Esimerkkejä:
# Alla tekstin tulostusta
print("Hello World!")
print("Hello World!") # Sama kuin yllä, mutta lisäksi kommenttiteksti

print(3+1) # Tämä ohjelmarivi tulostaa luvun 4

# Joskus tarvitsee merkkejä """
print("""Nyt tulostan " merkin ja se tehdään näin.""")


3. Muuttujat, muuttujatyypit ja tyypinmuunnos
Python automaattisesti asettaa muuttujille muuttujatyypin. Muuttujatyyppejä ovat:
  • str = merkkijono
  • int = kokonaisluku
  • float = desimaaliluku (käytä pistettä, esim: 2.12)
Esimerkkejä muuttujan luomisesta:
x = 3 # Python tekee x:n tyypiksi int 
y = 4.0  # Python tekee y:n tyypiksi float
z = x+y # Python tekee z:n tyypiksi float
s = "Heippa" # Python tekee s:n tyypiksi str

print(x+y) # Tämä ohjelmarivi laskee x+y ja tulostaa vastauksen: 7.0
print(x, y) # Tämä ohjelmarivi tulostaa luvut x ja y: 3 4.0

Tyypinmuunnos

Joskus muuttujan tyyppi on eri mitä halutaan. Esimerkiksi muuttujan s tyyppi on str, se on vaikkapa "39" ja sitä halutaan käsitellä lukuna, mutta merkkijonoa ei voi käsitellä lukuna. Tässä kohtaa tarvitaan tyypinmuunnosta.

Tyypinmuunnoksen voi tehdä näin:


# Jos merkkijono s on kokonaisluku, silloin tyypinmuunnoksen voi tehdä joko kokonaisluvuksi tai desimaaliluvuksi
s = int(s) # Jos halutaan kokonaisluku
s = float(s) # Jos halutaan desimaaliluku

# Jos merkkijono s on desimaaliluku, silloin tyypinmuunnos on tehtävä desimaaliluvuksi
s = float(s)


4. Syöte funktiolla input()
Syötteellä kysytään jotain käyttäjältä ja vastaus tallennetaan muuttujaan, jonka muuttujatyyppi on aina automaattisesti str ja tämän vuoksi syötteissä usein tarvitsee käyttää tyypinmuunnosta.

Esimerkkejä input():
nimi = input("Anna nimesi: ") # nimi muuttujatyyppi on str
luku1 = input("Anna luku1: ") # luku1 muuttujatyyppi on str
luku2 = input("Anna luku2: ") # luku2 muuttujatyyppi on str

# nimi on tyyppiä str ja OK
# luku1 on tyyppiä str ja väärä muuttujatyyppi, jos sillä lasketaan jotain

luku1 = float(luku1) # Nyt luku1 muuttujatyyppi on float
luku2 = float(luku2) # Nyt luku2 muuttujatyyppi on float

# Alla luku1+luku2 laskee luvut yhteen, jonka jälkeen str() muuntaa luvun merkkijonoksi
str = "Hei " + nimi + "! " + " Lukujen summa on " + str(luku1+luku2)

print(str) # Tulostaa näytölle muuttujan str merkkijonon


5. Vertailu Pythonissa

  • a == b, yhtäsuuruus
  • a != b, erisuuruus
  • a > b
  • a >= b
  • a < b
  • a <= b
Pythonissa vertailun tulos on joko True tai False.

Esimerkki vertailu:
print(2 < 1) # Tulostaa näytölle tekstin False

Vertailu on tärkeä asia ja sitä tarvitaan IF-ehtolauseissa.


6. Valintarakenteet if, if-else ja if-elif-else
IF-ehtolauseilla voidaan ohjata ohjelman toimintaa haluttuun suuntaan.

Valintarakenteissa ja toistorakenteissa sisennys on oltava 100% oikein tai muuten ei toimi. Pedanetsivulla sisennys saattaa näkyä väärin.

Esimerkki IF:
luku1 = int(input("Anna kokonaisluku1: "))
luku2 = int(input("Anna kokonaisluku2: "))

if luku1 < luku2:
 print("Hei")
 print("Luku 2 on suurempi")

if luku1 > luku2:
 print("Hei")
 print("Luku 1 on suurempi")

if luku1 == luku2:
 print("Hei")
 print("Luvut ovat yhtäsuuret")

# Yllä olevan heikkous on se, että siinä kaikki vaihtoehdot testataan joka kerta.
# Saman voisi tehdä tehokkaammin valintarakenteella if-elif-else

Esimerkki IF-ELIF-ELSE:
If-elif-else tulee sanoista if - else if - else. Vahvuus on se, että alempiin vaihtoehtoihin ei mennä turhaan, jos ylempi toteutuu.

luku1 = int(input("Anna kokonaisluku1: "))
luku2 = int(input("Anna kokonaisluku2: "))

if luku1 < luku2:
 print("Hei")
 print("Luku 2 on suurempi")
elif luku1 > luku2: # Huom! Elif testejä voi olla enemmän kuin 1kpl
 print("Hei")
 print("Luku 1 on suurempi")
else:
 print("Hei")
 print("Luvut ovat yhtäsuuret")

Esimerkki IF-ELSE:
luku1 = int(input("Anna kokonaisluku1: "))
luku2 = int(input("Anna kokonaisluku2: "))

if luku1 < luku2:
 print("Hei")
 print("Luku 2 on suurempi")
else:
 print("Hei")
 print("Luku 1 on suurempi tai yhtäsuuri kuin luku 2")


7. Toistorakenteet while ja for

Esimerkki while:
luku1 = 0

# Alla while suoritetaan kunnes ehto on tosi
while luku1 != 1111:

 luku1 = int(input("Anna kokonaisluku1: "))
 luku2 = int(input("Anna kokonaisluku2: "))

 if luku1 < luku2:
 print("Hei")
 print("Luku 2 on suurempi")
 elif luku1 > luku2:
 print("Hei")
 print("Luku 1 on suurempi")
 else:
 print("Hei")
 print("Luvut ovat yhtäsuuret")

print("LOPPU")


Esimerkki for:
# Alla oleva toistaa 10 kertaa
for k in range(0, 10):
 print("Hei", k)

print("LOPPU")


8. Pyöristäminen funktiolla round()
Pyöristäminen voidaan tehdä funktiolla round(). Alla esimerkki.

x = 1
y = 3
z = round(x/y, 2) 
print(z) # Tulostaa 0.33

Round() palauttaa aina luvun. Sille pitää aina antaa kaksi lukua, joista ensimmäinen on pyöristettävä luku ja toinen kertoo monenko desimaalin tarkkuudella halutaan vastaus. Nyt vastaus tulee 2 desimaalin tarkkuudella, vastaus menee muuttujaan z ja muuttujan z sisältö tulostetaan näytölle.


9. Listat

Esimerkki lista:
lista = ["A", "B", "C", "D"]

# Alla tulostetaan listan 2. alkio. Alkioiden luettelointi alkaa nollasta.
print(lista[1])

# Alla tulostetaan listan kaikki alkiot
print(lista)


10. Lisäkirjastot: satunnaisluku, murtoluku ja turtle
Pythonissa on lisäkirjastoja, joita ovat esimerkiksi satunnaislukuja tekevä random ja murtolukuja tekevä fraction.

Esimerkki random:
# Tämä ottaa randomin käyttöön:
import random

# Alla luodaan satunnainen kokonaisluku väliltä 1-100.
satunnaisluku1 = random.randint(1, 100)

print(satunnaisluku1)

Esimerkki murtoluku:
# Tämä ottaa fractionin käyttöön:
from fractions import Fraction

# Alla luodaan murtoluku 2/3
luku = Fraction(2,3)

print(luku)

Turtle-kirjasto
Turtlen saa käyttöön komennolla import turtle
Ohjeet turtleen löytyy osoitteesta https://peda.net/jyvaskyla/ict/ohjeet/pop/k


11. Lisää Python-tietoa
Lisää python tietoa löytyy osoitteesta https://peda.net/jyvaskyla/ict/ohjeet/pop

Peda.net käyttää vain välttämättömiä evästeitä istunnon ylläpitämiseen ja anonyymiin tekniseen tilastointiin. Peda.net ei koskaan käytä evästeitä markkinointiin tai kerää yksilöityjä tilastoja. Lisää tietoa evästeistä