Πολλές φορές δε γνωρίζουμε τον αριθμό των επαναλήψεων. Για παράδειγμα
i = 0
while i < 5:
print(i)
i = i + 1
0
1
2
3
4
Στην εντολή while πρέπει να φροντίζουμε κάποια στιγμή η συνθήκη να γίνει ψευδής ώστε να τερματίσει η επανάληψη κάποια στιγμή. Στο παράδειγμα δίπλα επανάληψη δε θα τελειώσει ποτέ!
# DANGER! Δεν τερματίζει ποτέ!
i = 0
while i < 5:
print(i)
i = i - 1
i = 0
while i < 5:
print(i)
i = i + 1
for i in range(5):
print(i)
Εισαγωγή δεδομένων μέχρι να φτάσουμε ένα επιθυμητό σύνολο
total = 0
while total < 100:
weight = int(input("Δώσε βάρος προιόντος:"))
total = total + weight
print("Σύνολο =", total, "Kg")
Δώσε βάρος προιόντος: 5
Δώσε βάρος προιόντος: 90
Δώσε βάρος προιόντος: 10
Σύνολο = 105 Kg
Ρίχνουμε ζάρι τυχαία μέχρι να φέρουμε 6
import random
zari = 0
while (zari != 6):
zari = random.randint(1,6)
print(zari)
print("Εξάρι!")
5
1
1
3
6
Εξάρι!
Επαλήθευση κωδικού ώστε να έχει τουλάχιστον 6 χαρακτήρες
password = ""
while len(password) < 6:
password = input("Δώσε νέο κωδικό, 6 χαρακτήρες τουλάχιστον")
print("Ο κωδικός σας άλλαξε!")
Ο χρήστης απαντά μέχρι να δώσει τη σωστή απάντηση. Παράλληλα μετράμε τις προσπάθειες.
print("Ποιος σκηνοθέτησε τη ταινία Reservoir Dogs;")
print("1. Stanley Kubrick")
print("2. Quentin Tarantino")
print("3. Theodoros Angelopoulos")
print("4. Martin Scorsese")
tries = 0
answer = 0
while answer != 2:
answer = int(input("Βρες τη σωστή απάντηση >"))
if answer != 2:
print("Πρέπει να ξαναδοκιμάσεις.")
tries = tries + 1
print()
print("MΠΡΑΒΟ, απάντησες σωστά μετά από", tries, "προσπάθειες")
Ζητάμε πολλαπλά δεδομένα από τον χρήστη χωρίς να γνωρίζουμε πόσα.
done = False
sum_data = 0
count = 0
print("Δώσε αριθμούς ακεραίους, πληκτρολόγησε q για να σταματήσεις")
while not done:
data = input(">")
if data == 'q':
print("Ευχαριστώ")
done = True
else:
sum_data = sum_data + int(data)
count = count + 1
print()
print("Αθροισμα = ", sum_data)
print("Μ.Ο. = ", sum_data/count)
Να γράψετε ένα πρόγραμμα με βρόγχο επανάληψης while όπου:
zari1
και zari2
)