Neurochirurgie minim invazivă
"Primum non nocere" este ideea ce a deschis drumul medicinei spre minim invaziv. Avansul tehnologic extraordinar din ultimele decenii a permis dezvoltarea tuturor domeniilor medicinei. Microscopul operator, neuronavigația, tehnicile anestezice avansate permit intervenții chirurgicale tot mai precise, tot mai sigure. Neurochirurgia minim invazivă, sau prin "gaura cheii", oferă pacienților posibilitatea de a se opera cu riscuri minime, fie ele neurologice, infecțioase, medicale sau estetice. www.neurohope.ro |
Guessing Game in python
Last Updated: Dec 18 2015 01:31, Started by
Bylly00
, Dec 04 2015 23:33
·
0
#1
Posted 04 December 2015 - 23:33
Salutare, am incercat sa rezolv urmatoarea problema http://www.practicep...g-game-one.html
Pare simplu la inceput, dar dupa ce ieri seara m-am chinuit vreo 2 ore si inca vreo jumatate de ora in seara asta am decis sa va cer ajutorul. Dupa vreo 50 de versiuni am pierdut versiunea care functiona cel mai aproape de cerinte si am ramas cu chestia asta care nici nu porneste din cauza ca.... nici nu mai stiu de ce. In fine: import random number=random.randint(0, 9) print 'Type exit to leave' guess=input('Try to guess a number between 0 and 9: ') def is_number(s):#functia verifica daca este un numar# try: float(s) return True except ValueError: return False def valid(s):#verifica daca in plus este si in range# if is_number(s): if int(s) in range(0,10): return True else: return False else: return False '''Aici e beleaua, programul trebuie sa ceara numere atata timp ca optiunea nu reprezinta un numar valid, nu este numarul generat (adica numarul care trebuie ghicit), si nu este comanda de iesire - exit''' while valid(guess)!=True and guess!='exit' and guess!=number: print 'Please insert valid number: ' guess=input('Try to guess a number between 0 and 9: ') else: if guess=='exit': print 'Goodbye' elif int(guess)==number print 'Lucky madafaca' Am mai gasit niste "solutii" pe siteul respectiv dar unele nici nu ruleaza, altele nu tin cont de multe chestii in principiu nu tin cont de introducerea de text in loc de numar sau nu tin cont de introducerea cuvantului exit. Pentru mine problema principala este ca nu stiu cum sa tin whileul asta activ atata timp cat am aceste 3 conditii - sa fie numar valid, sa nu fie numarul castigator si sa nu fie comanda exit . Am inceput sa studiez python acum vreo saptamana asta dupa ce acum vreo 100 de ani am facut turbo pascal si mi se pare un limbaj de programare super: simplu si totodata foarte puternic. |
#2
Posted 05 December 2015 - 02:14
Hmm, din ce citesc acolo mi se pare ca trebuie sa ceara numere pina spune utilizatorul exit si la sfirsit sa-i spuna de cite ori a ghicit.
Keep the game going until the user types “exit” Keep track of how many guesses the user has taken, and when the game ends, print this out. Nu-s programator, dar aș face ceva de genul: from random import randint guess = 0 tries = 0 while True: n = randint(0,9) s = raw_input("Enter a number to guess or exit to quit: ") if s == "exit": break else: try: float(s) if int(s) < n: print "Too low" elif int(s) > n: print "Too high" else: print "You guessed" guess = guess + 1 tries = tries + 1 except ValueError: print "Not valid" print "You tried %d times and guessed %d times" %(tries, guess) |
#3
Posted 05 December 2015 - 02:32
Uite și soluția pentru problema expusă de tine, cred:
from random import randint tries = 0 s = 0 n = randint(0,9) while True: s = raw_input("Enter a number to guess or exit to quit: ") if s == "exit": print "You didn't guess the number" break try: float(s) tries = tries + 1 if int(s) < n: print "Too low" elif int(s) > n: print "Too high" else: print "It took you %d tries to guess the number" %(tries) break except ValueError: print "Not valid" |
#4
Posted 05 December 2015 - 13:02
Eh, eu as spune ca esti (programator), dar cine sunt eu sa pun etichete oamenilor ?
Multumesc frumos pentru rezolvare. Pe codeacademy nu am dat peste structura try/except si de aceea nu m-am gandit sa integrez in ea si restul conditiilor; doar am copiat acea functie de undeva si am folosit-o separat. De asemenea nu am mai folosit pana acum while in felul asta, am bagat la cap acum (sper). Edited by Bylly00, 05 December 2015 - 13:02. |
#5
Posted 15 December 2015 - 19:11
"Guesses" înseamnă presupuneri, adică să numeri de câte ori încearcă.
Nu prea are sens să numeri de câte ori nimerește, pentru că jocul se termină oricum când nimerește. Ce zice mai departe "keep the game going" este să tot întrebi până nimerește sau până renunță (cu exit), pentru că enunțul inițial era să generezi un număr, să întrebi care e, să răspunzi că e mai mic, mai mare sau chiar el și acolo se termină programul. Adică să folosești while, care nu e necesar pentru rezolvarea inițială. |
#6
Posted 17 December 2015 - 22:49
A doua varianta propusa de mufa e ok, nu gasesc nimic in neregula cu ea. Am priceput intre timp ca trebuie sa ai mare grija de exceptii, sa iei in calcul tot ce poate merge intr-un mod neasteptat (de exemplu sa fie introdus text in loc de o valoare numar intreg sau alte bazaconii), trebuie sa prinzi acele exceptii si sa stii ce sa faci cu ele.
Din cate inteleg eu, varianta while este singura, devreme ce nu stim de cate ori se va repeta programul (nu stim de cate incercari e nevoie pentru a gasi solutia). Se poate altfel? Edited by Bylly00, 17 December 2015 - 22:50. |
#7
Posted 18 December 2015 - 01:31
Ai înțeles bine, while folosești când nu știi de câte ori vei face ceva.
|
Anunturi
▶ 0 user(s) are reading this topic
0 members, 0 guests, 0 anonymous users