Python

ΕΝΟΤΗΤΑ 10 - While Loops

image description

Στο σημερινό δωρεάν μάθημα Python θα ασχοληθούμε με τα while loop. Αυτή είναι η πρώτη ενότητα από την γενικότερη κατηγορία τον repetition structures όπως ονομάζονται στην οποία ανήκουν τα while loops και τα for loops.

Όταν γράφουμε κώδικα, προσπαθούμε όσο το δυνατόν περισσότερο να αποφύγουμε την επανάληψη του ίδιου κώδικα στο πρόγραμμα μας. Σκεφτείτε, για παράδειγμα, ότι έχουμε γράψει ένα απλό πρόγραμμα το οποίο ζητάει να καταχωρήσουμε όλους τους εργαζόμενους σε μια εταιρεία. Με όσα ξέρουμε μέχρι τώρα θα πρέπει να ρωτήσουμε τον χρήστη τόσες φορές όσοι είναι οι εργαζόμενοι. Δηλαδή, θα πρέπει να γράψουμε την input( ) functions τόσες φορές όσοι είναι οι εργαζόμενοι. Εδώ φαίνονται ήδη τα προβλήματα τα οποία θα αντιμετωπίσουμε: (1) ίσως μας είναι άγνωστος ο αριθμός των εργαζόμενων οπότε θα πρέπει να γράψουμε έναν αρκετό μεγάλο αριθμό input( ) function για να είμαστε καλυμμένοι και (2) μπορεί να μας είναι γνωστός ο αριθμός των εργαζόμενων αλλά να είναι αρκετά μεγάλος οπότε πάλι καταλήγουμε στο να επαναλάβουμε αρκετές φορές τον ίδιο κώδικα. Σκέφτεστε πως θα είναι ένα πρόγραμμα που έχει 1000 φορές γραμμένο τον ίδιο κώδικα

name = input("please enter employee's name")

Πως λοιπόν μας βοηθάει το while loop στο να λύσουμε το πρόβλημα επανάληψης του ίδιου κώδικα? Με το while loop μπορούμε μια ή και περισσότερες γραμμές κώδικα να τις επαναλάβουμε πολλαπλές φορές. Το πόσες φορές θα εκτελεστεί το while loop στηρίζεται στην συνθήκη που θα ορίσουμε εμείς. Όσο η συνθήκη είναι True τότε ο κώδικας θα επαναλαμβάνεται.

Ας δούμε ένα απλό παράδειγμα, έτσι ώστε να μπορούμε να δούμε και με περισσότερες λεπτομέρειες το πως συντάσσεται σωστά στην Python ένα while loop.

App.py


more_employee = 'y'

while more_employee == 'y':
    name_employee = input("Please enter employee's name: ")
    print("Thank you for registering employee: " + name_employee)
    more_employee = input('Do you have another employee to register?(Enter y for yes)')
   

Output


Please enter employee's name: Michail
Thank you for registering employee: Michail
Do you have another employee to register?(Enter y for yes)y
Please enter employee's name: Nick
Thank you for registering employee: Nick
Do you have another employee to register?(Enter y for yes)y
Please enter employee's name: Joan
Thank you for registering employee: Joan
Do you have another employee to register?(Enter y for yes)n
PS G:\PERFECT\KASSAPOGLOU\PYTHON\practice>
  

Ωραία, ας αναλύσουμε γραμμή προς γραμμή αυτό το απλό πρόγραμμα για να εμπεδώσουμε καλύτερα την λογική του while loop.

Εξ αρχής ορίζουμε μια μεταβλητή με το όνομα more_employee και αναθέτουμε την τιμή ‘y’ σε αυτήν. Αμέσως μετά ορίζουμε την αρχή ενός while loop. Η λέξη κλειδί while είναι απαραίτητη για να επισημάνει την αρχή του while loop. Αμέσως μετά ακολουθεί η συνθήκη την οποία θα εξετάσει το while loop. Προσέξτε ότι σε περίπτωση ισότητας η συνθήκη χρησιμοποιεί το διπλό σύμβολο της ισότητας και αμέσως μετά ακολουθεί το σύμβολο του colon ( : ). Αν λοιπόν η συνθήκη είναι True τότε το πρόγραμμα μας θα εκτελέσει τις γραμμές του κώδικα που ανήκουν στο while loop. Προσέξτε πάλι, ότι για να διακρίνει η Python ποιες γραμμές ανήκουν στο loop, θα πρέπει υπάρχει ένα κενό (συνήθως απόσταση ενός tab) στις γραμμές που ανήκουνε στο loop σε συσχέτιση με την θέση που βρίσκεται η αρχή του while loop.

Μέσα στο loop, ρωτάμε τον χρήστη να εισάγει το όνομα του εργαζόμενου, και αμέσως μετά το εκτυπώνουμε στην οθόνη. Αργότερα θα μάθουμε να το προσθέτουμε αυτό σε μια λίστα ή ακόμα καλύτερα σε μια βάση. Για τώρα, αρκούμαστε απλά στο να το εκτυπώνουμε στην οθόνη. Η τελευταία γραμμή είναι και η πιο σημαντική γιατί ρωτάμε τον χρήστη αν έχει και άλλον εργαζόμενο να προσθέσει. Το input από τον χρήστη το σώζουμε στην ίδια μεταβλητή την οποία χρησιμοποιεί το while loop για να αξιολογήσει την συνθήκη. Ο γενικός κανόνας είναι ότι πρέπει μέσα στον κώδικα του while loop να υπάρχει μια λογική που να επηρεάζει κατά κάποιο τρόπο την συνθήκη. Αν δεν υπάρχει αυτή η λογική, η συνθήκη θα είναι συνέχεια True και το while loop θα εκτελείται συνέχεια (infinite loop). Προσέχουμε λοιπόν να προσθέσουμε αυτή την λογική μέσα στο while loop.

Αφού προσθέσουμε τρεις εργαζόμενους, απαντάμε n την τέταρτη φορά. Βασικά οτιδήποτε και αν απαντήσουμε εκτός από y θα κάνει την συνθήκη να γίνει False και το while loop θα σταματήσει την εκτέλεση του.

Στην επόμενη ενότητα θα δούμε τα for loops ή count controlled loops όπως αλλιώς ονομάζονται.

ΕΙΣΗΓΗΤΗΣ

Merry Jhonson

Μιχάλης Κασάπογλου

Ο Μιχάλης Κασάπογλου, είναι ένας από τους πιο έμπειρους τεχνικούς εκπαιδευτές στον χώρο του προγραμματισμού με πάνω από 20 χρόνια εμπειρία. Έχει εργαστεί σαν IT Operations Manager, Senior Programmer, και Training Team Leader ενώ κατέχει και αρκετές πιστοποιήσεις που καλύπτουν ένα μεγάλο φάσμα τεχνολογιών στο προγραμματισμό, σε βάσεις δεδομένων και cloud. Στον ελεύθερο του χρόνο διατηρεί ένα τεχνολογικό blog στο οποίο θα βρείτε αρκετά δωρεάν μαθήματα προγραμματισμού για αρχάριους.

loader