Toisto – vaikeat tehtävät
Tehtävä 1. Selitä, mitä seuraavassa koodissa tapahtuu.

for i in range(3):
merkkijono = ""
for j in range(3):
merkkijono += "a"
print(merkkijono)
Koodissa on kaksi sisäkkäistä for-silmukkaa. (Toinen on siis toisen sisällä, jolloin puhutaan sisäkkäisistä silmukoista.)
Sisempi silmukka lisää muuttujaan merkkijono merkin ”a” niin monta kertaa kuin se suoritetaan (eli 3 kertaa).
Ulompi silmukka alustaa merkkijono-muuttujan tyhjäksi merkkijonoksi ja sitten suoritetaan sisempi silmukka, minkä jälkeen tulostetaan merkkijono-muuttuja.
Ulomman silmukan koodilohko suoritetaan kolmesti parametrin mukaan, eli merkkijonon alustus, sisempi silmukka sekä tulostus suoritetaan kolmesti.
Sisemmän silmukan koodilohko, eli merkin lisäys merkkijono-muuttujaan, suoritetaan kolmesti joka ulomman silmukan suorituskertaa kohden, eli yhteensä yhdeksän kertaa.
Välillä kuitenkin tulostetaan ja nollataan muuttuja, eli tuloste olisi seuraavanlainen:
aaa
aaa
aaa
Tehtävä 2.
Kirjoita ohjelma, joka tulostaa kolmella jaolliset luvut väliltä 4-25.

Tulosteena luvut 6, 9, 12, 15, 18, 21 ja 24 allekkain
Koodi:
for i in range(4, 26):
if i % 3 == 0:
print(i)
Tehtävä 3.
a) Ota syötteenä jokin sana ja lisää se viesti-muuttujaan 10 kertaa. Tulosta lopuksi viesti.

Tuloste:
Tämä on esimerkki. Sanoja: sanasanasanasanasanasanasanasanasanasana
Koodi:
lisäys = input("Syötä lisättävä sana: ")
viesti = "Tämä on esimerkki. Sanoja: "
for i in range(0,10):
viesti += lisäys
print(viesti)
b) Luo sana-muuttujaan jokin arvo. Tulosta luvut 1-5 ja sana niiden perään siten, että luku kasvaa ja että luvun 1 kohdalla on sanan yksikkö ja seuraavien kohdalla monikko.
Esim.
1 Lehmä
2 Lehmää
3 Lehmää

Tuloste:
1 Jotain
2 Joitain
3 Joitain
4 Joitain
5 Joitain
Koodi:
sana = "Jotain"
monikko = "Joitain"
for i in range(1,6):
if i == 1:
print(i, sana)
else:
print(i, monikko)
Tehtävä 4. Tulosta joka toinen luku luvuista 1-10 ja 10-1 vuorotellen samaan tulostukseen.

Tuloste:
1
10
3
8
5
6
7
4
9
2
Koodi:
for i in range(1,11,2):
print(i)
print(11-i)
Tehtävä 5.
a) Ota syötteenä lukuvälin alku ja loppu. Tulosta annetulta väliltä parilliset luvut, jotka ovat jaollisia myös kolmella.

Tulostaa ne lukuvälin parilliset luvut, jotka ovat jaollisia myös kolmella, eli lukuvälin kuudella jaolliset luvut.
Koodi:
alku = int(input("Anna lukuvälin ensimmäinen luku: "))
loppu = int(input("Anna lukuvälin viimeinen luku: "))
for luku in range(alku, loppu+1):
if luku % 2 == 0 and luku % 3 == 0:
print(luku)
b) Tulosta näiden lukujen summa ja tulo ja lisää tulosteeseen merkinnät, mitä kukin niistä tarkoittaa.

Tulostaa vastaavasti kuin edellinen kohta, minkä lisäksi tulostetaan ”Summa:”, jonka jälkeen summan arvo ja ”Tulo:”, jonka jälkeen tulon arvo.
Koodi:
alku = int(input("Anna lukuvälin ensimmäinen luku: "))
loppu = int(input("Anna lukuvälin viimeinen luku: "))
summa = 0
tulo = 1
for luku in range(alku, loppu+1):
if luku % 2 == 0 and luku % 3 == 0:
summa += luku
tulo *= luku
print("Luku:", luku)
print("Summa:", summa)
print("Tulo:", tulo)
c) Muuta lukujen eteen tulevaa tunnistetta sen mukaisesti, kuinka mones tulostettu luku on seuraavasti: ”Luku 1”, ”Luku 2”, ”Luku n”. Tulosta summa ja tulo edellisen kohdan mukaisesti.

Tulostus arvoilla 1 ja 20:
Luku 1: 6 Luku 2: 12 Luku 3: 18 Summa: 36 Tulo: 1296
Koodi:
alku = int(input("Anna lukuvälin ensimmäinen luku: "))
loppu = int(input("Anna lukuvälin viimeinen luku: "))
summa = 0
tulo = 1
indeksi = 1
for luku in range(alku, loppu+1):
if luku % 2 == 0 and luku % 3 == 0:
summa += luku
tulo *= luku
print(f"Luku {indeksi}:", luku)
indeksi+=1
print("Summa:", summa)
print("Tulo:", tulo)
Tehtävä 6. Palataan valintarakenteissa esiteltyyn kirjautumismekanismiin.
a) Kirjoita ohjelma, joka kysyy käyttäjältä käyttäjätunnusta ja salasanaa niin kauan, kunnes ne vastaavat ennalta määriteltyjä. Lisää tulosteita, jotta käyttäjä ymmärtää, mitä hänen tulisi tehdä.

Tulosteet:
Tervetuloa kirjautumiseen.
Jos tunnukset väärin:
Yritä uudelleen.
Jos oikein:
Kirjautuminen onnistui!
Tervetuloa järjestelmään!
Koodi:
print("Tervetuloa kirjautumiseen.")
while True:
käyttäjä = input("Syötä käyttäjätunnus: ")
salasana = input("Syötä salasana: ")
if käyttäjä == "Käyttäjä" and salasana == "salasana":
break
print("Yritä uudelleen.")
print("Kirjautuminen onnistui!")
print("Tervetuloa järjestelmään!")
b) Lisää toiminnallisuus käyttäjätunnuksen ja salasanan luomiselle. Salasanassa tulee olla vähintään kahdeksan merkkiä pitkä.

Tulosteet:
Luo ensin käyttäjä:
Luo käyttäjätunnus:
Käyttäjätunnuksesi on Käyttäjä.
Luo seuraavaksi salasana.
Salasanassa tulee olla väh. 8 merkkiä
Kaksi ylempää toistetaan, mikäli ehto ei täyty.
Salasana luotu!
Syötä käyttäjätunnus:
Syötä salasana:
Mikäli tunnukset väärin:
Yritä uudelleen.
Kirjautuminen onnistui!
Tervetuloa järjestelmään!
Koodi:
print("Luo ensin käyttäjä: ")
käyttäjä = input("Luo käyttäjätunnus: ")
print("Käyttäjätunnuksesi on", käyttäjä+".")
while True:
print("Luo seuraavaksi salasana.")
print("Salasanassa tulee olla väh. 8 merkkiä")
salasana = input()
if len(salasana)>=8:
break
print("Salasana luotu!")
while True:
käyttäjä = input("Syötä käyttäjätunnus: ")
salasana = input("Syötä salasana: ")
if käyttäjä == "Käyttäjä" and salasana == "salasana":
break
print("Yritä uudelleen.")
print("Kirjautuminen onnistui!")
print("Tervetuloa järjestelmään!")
c) Salasanassa tulee nyt olla yksi numero (0-9).

Koodi:
print("Luo ensin käyttäjä: ")
käyttäjä = input("Luo käyttäjätunnus: ")
print("Käyttäjätunnuksesi on", käyttäjä+".")
ehto = True
while ehto:
print("Luo seuraavaksi salasana.")
print("Salasanassa tulee olla väh. 8 merkkiä sekä yksi numero (0-9)")
salasana = input()
if len(salasana)>=8:
for merkki in salasana:
if merkki in "0123456789":
ehto = False
print("Salasana luotu!")
while True:
kirjaudu = input("Syötä käyttäjätunnus: ")
ksalasana = input("Syötä salasana: ")
if kirjaudu == käyttäjä and ksalasana == salasana:
break
print("Yritä uudelleen.")
print("Kirjautuminen onnistui!")
print("Tervetuloa järjestelmään!")
Tulosteet:
Luo ensin käyttäjä:
Luo käyttäjätunnus: Käyttäjä
Käyttäjätunnuksesi on Käyttäjä.
Luo seuraavaksi salasana.
Salasanassa tulee olla väh. 8 merkkiä sekä yksi numero (0-9)
Kahta ylempää toistetaan niin kauan, kunnes ehto täyttyy.
Salasana luotu!
Syötä käyttäjätunnus: Käyttäjä
Syötä salasana:
Yritä uudelleen.
Kolmea ylempää toistetaan niin kauan, kunnes tunnukset täsmäävät.
Kirjautuminen onnistui!
Tervetuloa järjestelmään!
Tehtävä 7.
a) Käy läpi seuraava lista [”laiva”, ”auto”, ”nosturi”, ”nalle”, ”omena”] ja tulosta alkion merkkien määrä jokaista alkiota kohden. Esim.
autossa on 4 kirjainta.

Tulostus:
laivassa on 5 kirjainta.
autossa on 4 kirjainta.
nosturissa on 7 kirjainta.
nallessa on 5 kirjainta.
omenassa on 5 kirjainta.
Koodi:
lista = ["laiva", "auto", "nosturi", "nalle", "omena"]
for alkio in lista:
print(alkio+"ssa on", len(alkio), "kirjainta.")
b) Tulosta lisäksi keskiarvo listan alkioiden merkkien määristä.

Tulostus:
laivassa on 5 kirjainta.
autossa on 4 kirjainta.
nosturissa on 7 kirjainta.
nallessa on 5 kirjainta.
omenassa on 5 kirjainta.
Listan keskiarvo on: 5.2
tai
Listan keskiarvo on: 5.2.
Koodi:
lista = ["laiva", "auto", "nosturi", "nalle", "omena"]
lista2 = []
for alkio in lista:
print(alkio+"ssa on", len(alkio), "kirjainta.")
lista2.append(len(alkio))
print("Listan keskiarvo on:", sum(lista2)/len(lista2))
# Vaihtoehtoinen tapa tulostaa keskiarvo
print(f"Listan keskiarvo on: {sum(lista2)/len(lista2)}.")
c) Entäpä mediaani?
Voit järjestää listan lista.sort() -metodin avulla suuruusjärjestykseen.

Tulosteet:
laivassa on 5 kirjainta.
autossa on 4 kirjainta.
nosturissa on 7 kirjainta.
nallessa on 5 kirjainta.
omenassa on 5 kirjainta.
Listan keskiarvo on: 5.2
Listan mediaani on: 5.
Koodi:
lista = ["laiva", "auto", "nosturi", "nalle", "omena"]
lista2 = []
for alkio in lista:
print(alkio+"ssa on", len(alkio), "kirjainta.")
lista2.append(len(alkio))
print("Listan keskiarvo on:", sum(lista2)/len(lista2))
lista2.sort()
mediaani = lista2[int(len(lista2)/2)]
print("Listan mediaani on:", mediaani)
d) Bonus: Virkkeet näyttävät hieman vajavaisilta. Muuta sanojen ensimmäiset kirjaimet isoiksi kirjaimiksi.
Käytä .upper() -metodia (merkkijono.upper() ) saadaksesi ison kirjaimen. Lisäksi voit käyttää merkkijonon osia.

Tulosteet:
Laivassa on 5 kirjainta.
Autossa on 4 kirjainta.
Nosturissa on 7 kirjainta.
Nallessa on 5 kirjainta.
Omenassa on 5 kirjainta.
Listan keskiarvo on: 5.2
Listan mediaani on: 5.
Koodi:
lista = ["laiva", "auto", "nosturi", "nalle", "omena"]
lista2 = []
for alkio in lista:
print(alkio[0].upper()+alkio[1:]+"ssa on", len(alkio), "kirjainta.")
lista2.append(len(alkio))
print("Listan keskiarvo on:", sum(lista2)/len(lista2))
lista2.sort()
mediaani = lista2[int(len(lista2)/2)]
print("Listan mediaani on:", mediaani)
Tehtävä 8. Eratostheneen seulan avulla etsitään alkulukuja. Luo seula ja ota kokonaislukusyöte n.
Voit luoda seulan seuraavalla tavalla:
Ensin luo lista, jossa on n+1 määrä nollia. seula = [0]*(n+1)
Sitten tarkista ja merkitse kahdesta eteenpäin, mitkä luvuista ovat jaollisia kahdella, sitten kolmella, sitten seuraavalla merkitsemättömällä luvulla. Tämän voi tehdä seuraavalla tavalla:
for i in range(2,n+1):
for j in range(2*i, n+1, i):
seula[j] = 1
Merkitään siis ykkösellä ei-alkuluvut.
Lopuksi voidaan käydä lista läpi ja tarkistaa, minkä indeksien kohdalla arvo on 0.
a) Käytetään syötteenä saatua arvoa n ja tulostetaan kaikki alkuluvut nollasta n:ään.

Tulosteet:
Syötä lukuvälin yläraja: 10
Tulostaa:
2
3
5
7
Koodi:
n = int(input("Syötä lukuvälin yläraja: "))
seula = [0]*(n+1)
for i in range(2,n+1):
for j in range(2*i, n+1, i):
seula[j] = 1
for i in range(2, n+1):
if seula[i] == 0:
print(i)
b) Tulosta alkulukujen määrä ja summa annetulla välillä.

Tulosteet:
Syötä lukuvälin yläraja: 100
Tulostaa:
1060
25
Koodi:
summa = 0
määrä = 0
n = int(input("Syötä lukuvälin yläraja: "))
seula = [0]*(n+1)
for i in range(2,n+1):
for j in range(2*i, n+1, i):
seula[j] = 1
for i in range(2, n+1):
if seula[i] == 0:
summa += i
määrä += 1
print(summa)
print(määrä)
c) Ota syötteenä lukuvälin alku ja loppu. Tulosta sitten väliltä löytyneet alkulukuparit ja väliltä löytyneiden alkulukujen keskiarvo.

Tulosteet:
Syötä lukuvälin alaraja: 10
Syötä lukuvälin yläraja: 100
Tulostaa:
11 13
17 19
29 31
41 43
59 61
71 73
49.666666666666664
Koodi:
alku = int(input("Syötä lukuvälin alaraja: "))
loppu = int(input("Syötä lukuvälin yläraja: "))
seula = [0]*(loppu+1)
summa = 0
määrä = 0
for i in range(2,loppu+1):
for j in range(2*i, loppu+1, i):
seula[j] = 1
for i in range(alku, loppu+1):
if seula[i] == 0:
summa += i
määrä += 1
if seula[i] == 0 and seula[i+2] == 0:
print(i, i+2)
print(summa/määrä)
Tehtävä 9. Ota syötteenä merkkijono ja käännä se peilikuvakseen. Tulosta alkuperäinen ja peilikuva peräkkäin.
Silmukoilla voi mennä myös taaksepäin.
Viimeisen indeksin saat luvun len(merkkijono)-1 avulla.

Tulosteet:
Syötä merkkijono: Python
Tulostaa:
PythonnohtyP
Koodi:
syöte = input("Syötä merkkijono: ")
kääntö = ""
for i in range(len(syöte)-1,-1,-1):
kääntö += syöte[i]
print(syöte+kääntö)
Tehtävä 10. Tässä tehtävässä otetaan syötteenä merkkijono ja käydään sitä läpi ja napataan siinä esiintyvien tietyntyyppisten merkkien määriä.
Mieti, miten löytäisit esim. kaikki vokaalit helposti jostain merkkijonosta.
a) Laske merkkijonossa esiintyvät vokaalit ja tulosta niiden määrä esimerkin mukaisesti:
Tässä on 6 vokaalia.

Esimerkkitulosteena:
Tässä on 8 vokaalia.
Koodi:
vokaalit = 0
syöte = input("Syötä merkkijono: ")
for kirjain in syöte:
if kirjain in "aeiouyåäöAEIOUYÅÄÖ":
vokaalit += 1
print("Tässä on", vokaalit, "vokaalia.")
b) Laske vokaalien lisäksi nyt konsonantit ja tulosta myös niiden määrä samalla tavalla.

Esimerkkitulosteena:
Tässä on 8 vokaalia.
Tässä on 13 konsonanttia.
Koodi:
vokaalit = 0
konsonantit = 0
syöte = input("Syötä merkkijono: ")
for kirjain in syöte:
if kirjain in "aeiouyåäöAEIOUYÅÄÖ":
vokaalit += 1
elif kirjain in "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ":
konsonantit += 1
print("Tässä on", vokaalit, "vokaalia.")
print("Tässä on", konsonantit, "konsonanttia.")
c) Laske näiden lisäksi vielä numeroiden määrä ja tulosta se samalla tavalla.

Esimerkkitulosteena:
Tässä on 8 vokaalia.
Tässä on 13 konsonanttia.
Tässä on 3 lukua.
Koodi:
vokaalit = 0
konsonantit = 0
luvut = 0
syöte = input("Syötä merkkijono: ")
for kirjain in syöte:
if kirjain in "aeiouyåäöAEIOUYÅÄÖ":
vokaalit += 1
elif kirjain in "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ":
konsonantit += 1
elif kirjain in "0123456789":
luvut += 1
print("Tässä on", vokaalit, "vokaalia.")
print("Tässä on", konsonantit, "konsonanttia.")
print("Tässä on", luvut, "lukua.")
d) Laske vielä kirjainten ja numeroiden lisäksi välimerkit ja tulosta niiden määrä (voit valita yleisimmin käytetyt välimerkit, kaikkia ei vaadita).

Esimerkkitulosteena:
Tässä on 8 vokaalia.
Tässä on 13 konsonanttia.
Tässä on 3 lukua.
Tässä on 6 välimerkkiä.
Tässä on 0 muita merkkejä.
Koodi:
vokaalit = 0
konsonantit = 0
luvut = 0
välimerkit = 0
muut = 0
syöte = input("Syötä merkkijono: ")
for kirjain in syöte:
if kirjain in "aeiouyåäöAEIOUYÅÄÖ":
vokaalit += 1
elif kirjain in "bcdfghjklmnpqrstvwxzBCDFGHJKLMNPQRSTVWXZ":
konsonantit += 1
elif kirjain in "0123456789":
luvut += 1
elif kirjain in '".:,;-_!"/()[]+*=><#':
välimerkit += 1
else:
muut += 1
print("Tässä on", vokaalit, "vokaalia.")
print("Tässä on", konsonantit, "konsonanttia.")
print("Tässä on", luvut, "lukua.")
print("Tässä on", välimerkit, "välimerkkiä.")
print("Tässä on", muut, "muita merkkejä.")
Tehtävä 11. Ota syötteenä luku n ja näytä n ensimmäistä Fibonaccin lukujonon jäsentä.
Hyödynnä apumuuttujia tallentaaksesi edellisen arvon väliaikaisesti.

Tulosteet:
Syötä lukumäärä: 10
Tulostaa:
0
1
1
2
3
5
8
13
21
34
Koodi:
määrä = int(input("Syötä lukumäärä: "))
eka = 0
toka = 1
temp = 0
for i in range(määrä):
print(eka)
temp = toka
toka = eka + temp
eka = temp
Tehtävä 12. Ota syötteenä suorakulmion kanta ja korkeus.
Tehtävässä tulostetaan erilaisia suorakulmioita. Esim.
####
####
####
####
a) Tulosta suorakulmio, jonka kanta on kanta ja korkeus on korkeus. Voit valita merkin, josta haluat kuvion muodostuvan.

Tulosteet:
Arvoilla 5 ja 5 pitäisi siis tulostua seuraavanlainen suorakulmio:
#####
#####
#####
#####
#####
Koodi:
sivu = int(input("Syötä sivun pituus: "))
sivu2 = int(input("Syötä toisen sivun pituus: "))
for i in range(sivu):
pätkä = ""
for j in range(sivu2):
pätkä += "#"
print(pätkä)
b) Suorakulmion voi piirtää myös siten, että piirretään pelkät ääriviivat. Jätä siis keskikohta tyhjäksi.

Tulosteet:
Arvoilla 5 ja 5 pitäisi siis tulostua seuraavanlainen suorakulmio:
#####
# #
# #
# #
#####
Koodi:
sivu = int(input("Syötä sivun pituus: "))
sivu2 = int(input("Syötä toisen sivun pituus: "))
for i in range(sivu):
pätkä = ""
if i == 0 or i == sivu-1:
for j in range(sivu2):
pätkä += "#"
else:
for j in range(sivu2):
if j == 0 or j == sivu2-1:
pätkä += "#"
else:
pätkä += " "
print(pätkä)
c) Tulosta samainen suorakulmio eri suunnassa.

Tuloste:
Tulostaa suorakulmion, jonka sivut ovat toisinpäin.
Arvoilla 5 ja 6 tuloste olisi seuraava:
#####
# #
# #
# #
# #
#####
Koodi:
sivu = int(input("Syötä sivun pituus: "))
sivu2 = int(input("Syötä toisen sivun pituus: "))
for i in range(sivu2):
pätkä = ""
if i == 0 or i == sivu2-1:
for j in range(sivu):
pätkä += "#"
else:
for j in range(sivu):
if j == 0 or j == sivu-1:
pätkä += "#"
else:
pätkä += " "
print(pätkä)
d) Tulosta kuvio siten, että se kaksinkertaistuu oikealle, mutta keskellä on vain yksi viiva merkkejä, eli jätä toisen suorakulmion vasemmanpuoleinen ääriviiva huomiotta. Kuvion tulee siis olla symmetrinen keskiviivaa lukuun ottamatta.
Esim. alkuperäinen kuvio vasemmalla ja kaksinkertainen oikealla:
#####
# #
# #
# #
#####
#########
# # #
# # #
# # #
#########

Tulosteet:
Arvoilla 5 ja 5 tulostaa seuraavanlaisen kuvion:
#########
# # #
# # #
# # #
#########
Koodi:
sivu = int(input("Syötä sivun pituus: "))
sivu2 = int(input("Syötä toisen sivun pituus: "))
for i in range(sivu2):
pätkä = ""
if i == 0 or i == sivu2-1:
for j in range(2*sivu-1):
pätkä += "#"
else:
for j in range(2*sivu-1):
if j == 0 or j == sivu-1 or j == (2*sivu-2):
pätkä += "#"
else:
pätkä += " "
print(pätkä)
e) Tee vielä vastaava jatko alaspäin. Jätä alareuna, mutta muutoin kuvio on symmetrinen.
Esim. alkuperäinen kuvio vasemmalla ja oikealle ja alaspäin jatkettu oikealla:
#####
# #
# #
# #
#####
#########
# # #
# # #
# # #
#########
# # #
# # #
# # #
#########

Tulosteet:
Tulostaa seuraavanlaisen kuvion arvoilla 5 ja 5:
#########
# # #
# # #
# # #
#########
# # #
# # #
# # #
#########
Koodi:
sivu = int(input("Syötä sivun pituus: "))
sivu2 = int(input("Syötä toisen sivun pituus: "))
for i in range(2*sivu2-1):
pätkä = ""
if i == 0 or i == sivu2-1 or i== 2*sivu2-2:
for j in range(2*sivu-1):
pätkä += "#"
else:
for j in range(2*sivu-1):
if j == 0 or j == sivu-1 or j == (2*sivu-2):
pätkä += "#"
else:
pätkä += " "
print(pätkä)
Tehtävä 13. Kirjoita ohjelma, jolla voi laskea sanat annetussa virkkeessä.
Ohjelma tulostaa esim. ’Virkkeessä ”Minä olen koodari.” on 3 sanaa.’
Hyödynnä merkkijono.split() -metodia.

Tuloste:
Virkkeessä ”Tämä on virke.” on 3 sanaa.
Koodi:
virke = input("Syötä virke: ")
sanat = virke.split()
print('Virkkeessä "'+virke+'" on',len(sanat), "sanaa.")
Tehtävä 14. Tulosta seuraavanlainen matriisi:
[[1, 2, 3], [2, 3, 4], [3, 4, 5], [4, 5, 6], [5, 6, 7], [6, 7, 8], [7, 8, 9], [8, 9, 10]]
Matriisi on lista listoista.
Tarvitaan useampi juokseva indeksi, eli kenties useampi silmukka.

Tulosteena esimerkin mukainen matriisi, eli lista, jossa on listoja alkaen [1, 2, 3], joiden arvot kasvavat yhdellä.
Koodi:
lista = 8*[0]
lista2 = []
for i in range(len(lista)):
lista2 = []
for j in range(0,3):
lista2.append(j+i+1)
lista[i] = lista2
print(lista)
Tehtävä 15. Luo yksinkertainen arvailupeli, jossa generoidaan satunnainen arvo annetun lukuvälin sisältä, minkä jälkeen arvo tulee arvata. Syötteenä tulee ottaa kattoarvo, eli lukuvälin suurin arvo. Pienin arvo olkoon oletuksena nolla, mutta voit halutessasi määrittää myös sen. Pelin tulee ottaa syötteenä arvauksia lukuväliltä ja tulostaa, onko arvaus suurempi kuin arvattava luku, pienempi kuin arvattava luku vai onko se täsmälleen arvattava luku. Arvauksen täsmätessä generoituun lukuun peli päättyy.
Tähän tehtävään tarvitaan import random -komentoa sekä random.randint() satunnaisen luvun luomiseen.
Ota silmukan suorituksen ajan aina uusi arvaus ja käytä break-toimintoa, kun arvaus meni oikein.

Tulosteena esimerkin mukainen matriisi, eli lista, jossa on listoja alkaen [1, 2, 3], joiden arvot kasvavat yhdellä.
Koodi:
lista = 8*[0]
lista2 = []
for i in range(len(lista)):
lista2 = []
for j in range(0,3):
lista2.append(j+i+1)
lista[i] = lista2
print(lista)
