Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Tietovisan toistaminen

Karzatin [30.12.2011 11:44:04]

#

Miten tuossa Python-oppaan 3. osan tietovisa hommassa pääsisi hyppäämään takaisin alkuun? Mikä mahtaa moinen komento pythonissa ylipäätänsä olla. Kun ei ole labeleitä eikä muuta kivaa. Esim jos laittaisi kysymyksen loppuun haluatko pelata uudestaan ja vastauksella kyllä aloitettaisiin alusta, mitenkäs moinen?

ande1 [30.01.2012 18:33:14]

#

Karzatin: kokeile lisätä loppuun vaikka tällainen setti.

uusi_peli = raw_input("Haluatko pelata uudestaan (k/e)?\n")
if uusi_peli != "k":
	break     # rikkoo loopin eli silmukan joka vie takaisin "while" kohtaan

ja alkuun (siis sen kohdan yläpuolelle, josta haluat pelin alkavan:

k = 1
while k == 1:
	# kaikki pelin rivit sisennettynä (huom. jo sisennetytkin täytyy sisentää uudestaan)

nyt peli ikäänkuin looppaa tuohon "while k = 1:"-kohtaan kunnes käyttäjä ei paina k, eli voi pelata uudestaan. Jos kirjoittaa jotain muuta, silmukka rikkoutuu ja ohjelma jatkuu koko while-sotkun jälkeisestä rivistä, jonne voi kirjoittaa esim. print "Kiitos pelaamisesta!"

tässä vielä testattuna oma versioni, toi print "Peli." tarkottaa kaikkea sun peliin liittyvää:

k = 1
while k == 1:
	print "Peli."
	uusi_peli = raw_input("Haluatko pelata uudestaan (k/e)?\n")
	if uusi_peli != "k":
		break
print "Kiitos pelaamisesta."

toivottavasti toimii, olen itsekin aloittelija =)
edit. selkeytin viestiä ja lisäsin oman räpellykseni

anazon [08.03.2012 12:19:52]

#

Joo elikkäs jos haluaa käydä uudestaan tietovisaa, kannattaa vain lisätä alkuun silmukka "while True:". Lopussa kun kysytään haluaako pelaaja pelata uudestaan, laitetaan vastaus "k" jatkamaan silmukkaa ja vastaus "e" rikkomaan silmukan.

while True:
    #(tähän tietokilpailua...)
    ...
    vastaus = raw_input("Pelataanko uudestaan (k/e): ")
    if vastaus == "k":
        continue
    else:
        break

Elikkäs "while True"-silmukka jatkuu loputtomiin kunnes tulee komento "break".

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta