Η εντολή while
εκκινεί μία επαναληπτική διαδικασία
και το συντακτικό της είναι
while condition:
statements
Οι εντολές (statements) οι οποίες βρίσκονται μετά την while
και εντός εσοχής είναι οι εντολές οι οποίες, αποτελούν μέρος της ομάδας εντολών του while
και εκτελούνται επαναληπτικά.
Οι εντολές statements εκτελούνται εφόσον η έκφραση condition είναι αληθής.
Επαναλαμβάνουμε ότι ο τρόπος ομαδοποίησης των εντολών ανακύκλωσης statements είναι η εσοχή, όπως ήδη έχουμε δει και για την εντολή if
.
m = int(input("Give a positive integer: "))
i = 0
while i <= m:
print(i)
i = i + 1
perfect_cube = 216 # this is a perfect cube
x = 0
while x**3 <= perfect_cube:
x = x + 1
if x**3 == perfect_cube:
print(x,"is the cubic root of",perfect_cube)
Ένα πιο αναλυτικό πρόγραμμα είναι το εξής.
perfect_cube = 216 # this is a perfect cube
x = 0
while x**3 <= perfect_cube:
x = x + 1
if x**3 < perfect_cube:
print("No,", x,"is not the cubic root of",perfect_cube)
elif x**3 == perfect_cube:
print("Yes, indeed!", x,"is the cubic root of",perfect_cube)
Οι συμβολοσειρές αποτελούν σειρές χαρακτήρων και μπορούμε να τις διατρέξουμε με μία επαναληπτική διαδικασία.
s = input("Give a string: ")
i = 0
while i < len(s):
print(i,"character is",s[i])
i = i + 1
i += 1
είναι ισοδύναμη με την i = i + 1
. Γενικότερα, η x += y
είναι ισοδύναμη με την x = x + y
.
Επίσης υπάρχουν και οι τελεστές -=, *=, /=, //=. **= με ανάλογες σημασίες.
Το προηγούμενο πρόγραμμα γράφεται ως
s = input("Give a string: ")
i = 0
while i < len(s):
print(i,"character is",s[i])
i += 1
break, continue
break
.break
.
s = input("Give a string: ")
i = 0
while i < len(s):
if s[i] == 'o':
print("The character o is in position",i)
break
i = i + 1
if i == len(s):
print("There is no o in the word", s)
break
.
Η ανακύκλωση θα διακόπτεται μόλις βρεθεί η κυβική ρίζα.
pc = int(input("Give a positive integer: "))
x = 0
while x**3 <= pc:
x = x + 1
x3 = x**3
if x3 < pc:
print("No,", x,"is not the cubic root of",perfect_cube)
elif x3 == pc:
print("Yes, indeed!", x,"is the cubic root of",perfect_cube)
break
while
βάλουμε την boolean σταθερά True
.
Η εντολή break
είναι απαραίτητη στις ατέρμονες ανακυκλώσεις.
while True:
x = int(input("Input a number between 1 and 100: "))
if x >= 1 and x <= 100:
break
print("Well done!")
pc = int(input("Give a positive integer: "))
x = 0
x3 = x**3
while x3 <= pc:
x = x + 1
x3 = x**3
if x3 == pc:
print(x,"is the cubic root of",perfect_cube)
break
elif x3 > pc:
print(pc,"is not a perfect cube")
break
continue
.continue
η τρέχουσα ανακύκλωση διακόπτεται (οι επόμενες εντολές δεν εκτελούνται) και ο έλεγχος του προγράμματος πηγαίνει στην θέση της εντολής while
.
H ανακύκλωση επαναλαμβάνεται από εκείνο το σημείο.
iter = 0
summ = 0
while iter < 10:
x = int(input('Enter a positive integer: '))
if x <= 0:
continue
summ = summ + x
iter = iter + 1
print('The sum of the positive numbers is', sum)