Alla olevassa esimerkkikoodissa kaikki toiminta on kirjoitettu pääohjelmaan. Luo kommentoitujen ohjeiden mukaisesti apufunktioita ja kuljeta niille pääohjelmassa luodut muuttujat. Lopulta kutsut pääohjelmasta tekemiäsi apufunktioita ja tulostat palautuksen.
def main():
# Tarkistetaan, kumpi on alkiosta suurempi
# Tee tästä oma funktio nimeltä suurempi()
a = 12
b = 34
if a > b:
suurempi = a
else:
suurempi = b
print(suurempi)
# Lasketaan listan luvut yhteen
# Tee tästä oma funktio nimeltä laskeListanSumma()
lista = [2, 45, 61, 21, 40, 19, 32]
summa = 0
for alkio in lista:
summa += alkio
print(summa)
# Lasketaan merkkijonosta isojen ja pienien kirjainten määrä
# Tee tästä kaksi omaa funktiota nimeltä laskePienet() ja laskeIsot()
merkkijono = "Garry Kasparov voitti Speed Chess Championship Main Eventin"
pienet = 0
isot = 0
for kirjain in merkkijono:
if kirjain.isupper() == True:
isot += 1
elif kirjain.islower() == True:
pienet += 1
else:
continue
print("Isoja kirjaimia: " + str(isot))
print("Pieniä kirjaimia: " + str(pienet))
if __name__ == "__main__":
main()
# Funktio, joka ottaa vastaan kaksi lukua ja palauttaa niistä suuremman
def suurempi(eka, toka):
if eka > toka:
return eka
else:
return toka
# Funktio, joka laskee listan alkiot yhteen ja palauttaa summan
def laskeListanSumma(l):
summa = 0
for alkio in l:
summa += alkio
return summa
# Funktio, joka ottaa vastaan merkkijonon, laskee isot kirjaimet
# ja palauttaa lukumäärän
def laskePienet(mj):
pienet = 0
for kirjain in mj:
if kirjain.islower() == True:
pienet += 1
else:
continue
return pienet
# Funktio, joka ottaa vastaan merkkijonon, laskee isot kirjaimet
# ja palauttaa lukumäärän
def laskeIsot(mj):
isot = 0
for kirjain in mj:
if kirjain.isupper() == True:
isot += 1
else:
continue
return isot
def main():
a = 12
b = 34
vastaus = suurempi(a, b)
print(vastaus) # Voi myös kirjoittaa suoraan print(suurempi(a, b))
lista = [2, 45, 61, 21, 40, 19, 32]
summa = laskeListanSumma(lista)
print(summa)
merkkijono = "Garry Kasparov voitti Speed Chess Championship Main Eventin"
# Otetaan tulos funktiolta
pienet = laskePienet(merkkijono)
isot = laskeIsot(merkkijono)
# Tulostetaan kivan näköisesti ja muutetaan int-tyyppinen muuttuja tulostuskelpoiseksi
# str()-funktiolla
print("Isoja kirjaimia: " + str(isot))
print("Pieniä kirjaimia: " + str(pienet))
if __name__ == "__main__":
main()
Tarkoituksenasi on koodata ohjelma, joka heittää noppaa eli generoi satunnaisen luvun välillä 1-6. Jotta noppapeli on järkevä, on käyttäjältä kysyttävä jokaisen heiton jälkeen haluaako käyttäjä heittää noppaa uudelleen.
Vinkki: input()
ja import random
# Tuodaan random-moduuli satunnaisuutta varten
import random
def main():
# onkoNoppaKaynnissa muuttuja pitää tallessa sitä, haluaako
# käyttäjä pelata noppapeliä
onkoNoppaKaynnissa = True
# Hyödynnetään while-silmukkaa sillä emme tiedä, kuinka kauan
# käyttäjä haluaa pelata
while onkoNoppaKaynnissa:
pelataanko = input("Heitetäänkö noppaa? (y/n): ") # Kysytään haluaako käyttäjä pelata
if pelataanko == "y": # Jos kyllä,
rndm_numero = random.randint(1,6) # niin generoidaan satunnainen luku välillä 1-6
print(rndm_numero) # Tulostetaan luku käyttäjälle
elif pelataanko == "n": # Jos ei,
print("Kiitos pelihetkistä!") # niin tulostetaan "Kiitos pelihetkistä!"
onkoNoppaKaynnissa = False # Ja lopetetaan silmukka ja koko ohjelma, sillä muuta suoritettavaa ei ole
else:
print("Nyt en ymmärrä? vastaa \"y\" tai \"n\"") # Varaudutaan myös huonolaatuiseen syötteeseen
if __name__ == "__main__":
main()
Noniin, materiaalin viimeinen tehtävä. Tarkoituksenasi on luoda nelilaskin. Ohjelma kyselee käyttäjän syötettä ja syötteen mukaan osaa laskea yhteen-, vähennys-, kerto- ja jakolaskuja. Myös tämä ohjelma toimii siihen asti, kunnes käyttäjä päättää lopettaa laskimen käytön. HUOM! tässä tehtävässä saat toimia vapaammin, kunhan ohjelma sisältää tässä tehtävänannossa ilmoitetun toiminnan. Eli:
# Tuodaan random-moduuli satunnaisuutta varten
import random
def summa(a, b):
summa = int(a) + int(b)
return summa
def miinus(a, b):
erotus = int(a)-int(b)
return erotus
def kerto(a, b):
tulo = int(a)*int(b)
return tulo
def jako(a, b):
osamaara = int(a)/int(b)
return osamaara
def main():
onkoOhjelmaKaynnissa = True
print("Tervetuloa käyttämään nelilaskinta! Osaan laskea yhteen-, vähennys-, kerto- ja jakolaskuja kahdella luvulla.")
while onkoOhjelmaKaynnissa:
syote = input("Millaisen laskutoimituksen haluat tehdä? Kirjoita \"info\", jos tarvitset apua!")
if syote == "info":
print("""Ilmoita aluksi millaisen laskutoimituksen haluat suorittaa:
- "y" = yhteenlasku
- "v" = vähennyslasku
- "k" = kertolasku
- "j" = jakolasku
- "info" = infoa ohjelman toiminnasta
- "q" = poistu ohjelmasta""")
elif syote == "y":
print("Valitsit yhteenlaskun!")
eka = input("Anna ensimmäinen yhteenlaskettava luku: ")
toka = input("Anna ensimmäinen yhteenlaskettava luku: ")
print(summa(eka, toka))
elif syote == "v":
eka = input("Anna ensimmäinen luku, josta vähennetään: ")
toka = input("Anna toinen luku, joka vähennetään: ")
print(miinus(eka, toka))
elif syote == "k":
eka = input("Anna ensimmäinen kerrottava luku: ")
toka = input("Anna toinen kerrottava luku: ")
print(kerto(eka, toka))
elif syote == "j":
eka = input("Anna ensimmäinen, jaettava luku: ")
toka = input("Anna toinen, jakava luku (tämä ei saa olla 0!!): ")
if toka == 0:
print("Annoit silti nollan...")
continue
else:
print(jako(eka, toka))
else:
print("Nyt en ymmärrä? Kirjoita \"info\", jos tarvitset apua.") # Varaudutaan myös huonolaatuiseen syötteeseen
if __name__ == "__main__":
main()