Sveiki,
Nusprendziau VEL pameginti paprogramuot ka nors, tad pradejau nuo daugumai zinomo "Guess The Number" zaidimo. Kiek prisiminiau parasiau programele kuri lygtais veike Bet sumaniau, kad reikia siektiek ja patobulinti, tad visu pirma norejau pameginti pasalinti viena buga. Kadangi reikia naudoti input() funkcija, ivedus raide gaunu Traceback error'a. Taigi noreciau paklausti, ka reiketu daryti, kad vietoj to, jog gauciau errora ir programa "nulustu" i ekrana butu isvestas mano norimas tekstas, ir programa prasidedu is naujo.
p.s. programos kodas:
def skaiciai():
import random
speta = 0
print 'Sveika(s)!, koks tavo vardas?'
vardas = raw_input()
skaicius = random.randint(1, 20)
print 'Na,' + vardas + ' As sugalvosiu skaiciu nuo 1 iki 20, pamegink ji atspeti'
while speta < 6:
print 'Spek'
spejimas = input()
speta = speta + 1
if skaicius > spejimas:
print 'As sugalvojau didesni skaiciu'
if skaicius < spejimas:
print 'Mano sugalvotas skaicius mazesnis'
if skaicius == spejimas:
break
if skaicius == spejimas:
speta = str(speta)
skaicius = str(skaicius)
print 'Saunuolis, ' + vardas + 'tu atspejai skaiciu ' + skaicius + ' is ' + speta + ' kartu'
else:
print 'Deja, neatspejai'
print 'Ar noretum zaisti dar karta? Jei taip parasyk "taip"'
taip = raw_input()
if taip:
return skaiciai()
skaiciai()
p.p.s. zinau, kad paskutiniose 5-iose eilutese galima vesti betka, tesiog nieko geriau nesugalvojau
Na va, ačiū tau labai, už tą linką, internete nepastebėjau jo :/ Vienaip ar kitaip švaria galvą, per ~3minutes padariau tai ką visą vakarą bandžiau išmastyt (žalias programavime pokolkas). Taigi, jei ką nors domina, tai po pakeitimų kodas patapo toks(pakeitimus paryskinau):
def skaiciai():
import random
speta = 0
print 'Sveika(s)!, koks tavo vardas?'
vardas = raw_input()
skaicius = random.randint(1, 20)
print 'Na,' + vardas + ' As sugalvosiu skaiciu nuo 1 iki 20, pamegink ji atspeti'
while speta < 6:
print 'Spek'
[b]try:[/b]
spejimas = input()
[b]except:
print 'Privelei klaidu, cia reikia skaiciaus! Tu grazinamas i pradzia'
return skaiciai()[/b]
speta = speta + 1
if skaicius > spejimas:
print 'As sugalvojau didesni skaiciu'
if skaicius < spejimas:
print 'Mano sugalvotas skaicius mazesnis'
if skaicius == spejimas:
break
if skaicius == spejimas:
speta = str(speta)
skaicius = str(skaicius)
print 'Saunuolis, ' + vardas + 'tu atspejai skaiciu ' + skaicius + ' is ' + speta + ' kartu'
else:
print 'Deja, neatspejai'
print 'Ar noretum zaisti dar karta? Jei taip parasyk "taip"'
taip = raw_input()
if taip:
return skaiciai()
skaiciai()
Sveiki,
Nusprendziau VEL pameginti paprogramuot ka nors, tad pradejau nuo daugumai zinomo "Guess The Number" zaidimo. Kiek prisiminiau parasiau programele kuri lygtais veike Bet sumaniau, kad reikia siektiek ja patobulinti, tad visu pirma norejau pameginti pasalinti viena buga. Kadangi reikia naudoti input() funkcija, ivedus raide gaunu Traceback error'a. Taigi noreciau paklausti, ka reiketu daryti, kad vietoj to, jog gauciau errora ir programa "nulustu" i ekrana butu isvestas mano norimas tekstas, ir programa prasidedu is naujo.
p.s. programos kodas:
p.p.s. zinau, kad paskutiniose 5-iose eilutese galima vesti betka, tesiog nieko geriau nesugalvojau
Rodos 8.3 http://docs.python.org/tutorial/errors.html turėtų būti būtent tai ko ieškai.
Dėkui, ryt atidžiai perskaitysiu
Na va, ačiū tau labai, už tą linką, internete nepastebėjau jo :/ Vienaip ar kitaip švaria galvą, per ~3minutes padariau tai ką visą vakarą bandžiau išmastyt (žalias programavime pokolkas). Taigi, jei ką nors domina, tai po pakeitimų kodas patapo toks(pakeitimus paryskinau):
Tema perkelta iš https://legacy.ubuntu.lt/forum/viewtopic.php?f=11&t=6348