E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Python

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

DEVELOPMENT  /  Python  /  Introducere in Python (4)

Introducere in Python - Partea a III-a. Liste si bucla for.

04.08.2009
Introducere in Python - Partea a III-a. Liste si bucla for.

In acest tutorial vei putea citi despre colectiile de date din Python: liste, enumerari si dictionare, si despre cum poti utiliza bucla for pentru a le parcurge.

Total vizualizari: 11575 11575 afisari   |   Comentarii  1   |   Rating   |   (0 voturi)   |   Timp necesar: 30 min 30 min   |   Nivel de cunostiinte necesar: Incepator  Incepator

Sursa:  www.sthurlow.com  
Autor:  www.sthurlow.com
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
« 123 4
comenteaza printeaza

Din acesta putem scrie un program adevarat. Esti pregatit? Iata-l (treci peste comentarii):

#PRIMUL TAU JOC
 
#functia menu
def menu(list, question):
    for entry in list:
        print 1 + list.index(entry),
        print ") " + entry
 
    return input(question) - 1
 
#Creeaza lista cu obiectele din camera:
items = ["vas cu plante","tablou","vaza","veioza","pantof","usa"]
 
#Cheia se afla in vaza (al doilea element din lista de mai sus):
keylocation = 2
 
#Utilizatorul nu a gasit cheia:
keyfound = 0
 
loop = 1
 
#Scrie un text de introducere:
print "Aseara ai adormit in camera ta."
 
print "Dimineata te-ai trezit incuiat intr-o camera necunoscuta, "
print "si nu stii cum si cand ai ajuns acolo. In camera poti vedea "
print len(items), "obiecte:"
for x in items:
    print x
print ""
print "Usa e incuiata. Crezi ca poti gasi cheia?"
#Atat timp cat utilizatorul se afla in camera
#parcurge o bucla infinita:
while loop == 1:
    choice = menu(items,"Ce obiect vrei sa examinezi? ")
    if choice == 0:
        if choice == keylocation:
            print "Ai gasit o cheie in vasul cu plante."
 
            print ""
            keyfound = 1
        else:
            print "Vasul cu plante e gol."
            print ""
    elif choice == 1:
        if choice == keylocation:
            print "Ai gasit o cheie in spatele tabloului."
            print ""
 
            keyfound = 1
        else:
            print "Nu se afla nimic in spatele tabloului."
            print ""
    elif choice == 2:
        if choice == keylocation:
            print "Ai gasit o cheie in vaza."
            print ""
            keyfound = 1
        else:
            print "Vaza e goala."
 
            print ""
    elif choice == 3:
        if choice == keylocation:
            print "Ai gasit o cheie sub veioza."
            print ""
            keyfound = 1
        else:
            print "Nu se afla nimic sub veioza."
            print ""
 
    elif choice == 4:
        if choice == keylocation:
            print "Ai gasit o cheie in pantof."
            print ""
            keyfound = 1
        else:
            print "Nu se afla nimic in pantof."
            print ""
    elif choice == 5:
        if keyfound == 1:
            loop = 0
            print "Ai incercat cheia si usa a fost descuiata."
 
            print ""
        else:
            print "Usa e incuiata, trebuie sa gasesti cheia."
            print ""
 
# Aminteste-ti ca  continua codul pe urmatoarea linie
 
print "Felicitari 
ai reusit sa iesi din camera."

Un joc foarte simplu, dar amuzant. Nu fii speriat de numarul mare de linii de cod pentru ca multe dintre ele sunt instructiuni "if", foarte usor de citit.

Sa imbunatatim jocul

Prima intrebare pe care ar trebui sa ti-o pui este "functioneaza programul?" Raspunsul este da. Apoi ar trebui sa te intrebi "functioneaza bine?" - nu chiar. Functia menu() este grozava - te scuteste de a tasta mult cod. Bucla 'while' este putin confuza - 4 nivele de indentare intr-un singur program. Se poate si mai bine!

In urmatoarele tutoriale vei vedea ca acest exemplu ar putea fi mult mai usor implementat cu ajutorul claselor. Dar, momentan, sa ne multumim cu o functie ce va reduce dezordinea. Ii vom transmite 2 parametri - optiunea aleasa si locatia cheii. Valoarea returnata este 1 in cazul in care cheia a fost gasita si 0 in caz contrar. Sa vedem cum functioneaza:

def inspect(choice,location):
    if choice == location:
        print ""
        print "Ai gasit cheia!"
        print ""
        return 1
    else:
        print ""
        print "Nimic interesant aici."
        print ""
        return 0

Acum programul principal poate fi ceva mai simplu. Iata bucla while modificata:

while loop == 1:
    keyfound = inspect(menu(items,"Ce obiect vrei sa examinezi? "),keylocation)
    if keyfound == 1:
        print "Ai incercat cheia si usa a fost descuiata!"
        loop = 0

Acum programul devine cu mult mai scurt - de la 83 linii greoaie la 50 linii clare! Desigur, pierzi ceva din versatilitate, toate articolele din camera vor genera aceleasi mesaje. In plus, jocul devine mai putin interesant deoarece usa este descuiata automat dupa ce gasesti cheia. Totodata, programul devine ceva mai greu de modificat.

Cam atat despre liste si bucla for. In urmatorul tutorial din aceasta serie vei putea citi despre clase, obiecte, si utilizarea lor in Python.

Pagina:
« 123 4
comenteaza printeaza
Alte tutoriale Python:
Noteaza acest tutorial
Rating tutorial
 
(0 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
COMENTARII (1) spune-ti parerea
tyno tyno , Miercuri, 21 August 2013, ora 20:54
#1

ESTE BINE EXPLICAT.

Raporteaza acest comentariu ca injurios!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4320
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4180
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4170
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
4000
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
XML Action Script StyleSheet Ruby on Rails HTML Dreamweaver PSD Fireworks CSS Java SEO XHTML JSON RoR MySQL Gimp Swift 3D Illustrator Flash Fotografie Photoshop SWF Word Excel COREL DRAW AJAX Javascript Bridge Sony Vegas PHP Vista Python Powerpoint Verilog Lightroom Outlook
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software