Αμυντικός Προγραμματισμός
Παραδείγματα
Παράδειγμα 1: Ζητείται η εισαγωγή από τον χρήστη ενός θετικού ακέραιου αριθμού.
Α' τρόπος
defensive1.py |
---|
| while True:
x = input("Δώσε θετικό ακέραιο αριθμό: ")
# isdigit() returns True if the string is a digit string, False otherwise.
# A string is a digit string if all characters in the string are digits and
# there is at least one character in the string.
if not x.isdigit():
print("Λάθος είσοδος")
else:
if int(x) <= 0:
print("Λάθος είσοδος")
else:
break
print(x)
|
Παράδειγμα εκτέλεσης:
$ python defensive1.py
Δώσε θετικό ακέραιο αριθμό: -4
Λάθος είσοδος
Δώσε θετικό ακέραιο αριθμό: α
Λάθος είσοδος
Δώσε θετικό ακέραιο αριθμό: 0
Λάθος είσοδος
Δώσε θετικό ακέραιο αριθμό: 17
17
Β' τρόπος
defensive2.py |
---|
| while True:
x = input("Δώσε θετικό ακέραιο αριθμό: ")
try:
if int(x) <= 0:
print('Λάθος είσοδος, δοκιμάστε ξανά')
else:
break
except ValueError:
print('Λάθος είσοδος, δοκιμάστε ξανά')
print(x)
|
Παράδειγμα εκτέλεσης:
$ python defensive2.py
Δώσε θετικό ακέραιο αριθμό: 4+
Λάθος είσοδος, δοκιμάστε ξανά
Δώσε θετικό ακέραιο αριθμό: πέντε
Λάθος είσοδος, δοκιμάστε ξανά
Δώσε θετικό ακέραιο αριθμό: 42
42
Παράδειγμα 3: Εισαγωγή μη κενής συμβολοσειράς
defensive1.py |
---|
| s = input("Εισάγετε μια μη κενή συμβολοσειρά: ")
while s.strip() == '':
s = input("Εισάγετε μια μη κενή συμβολοσειρά: ")
print(s)
|
Παράδειγμα εκτέλεσης:
$ python defensive3.py
Εισάγετε μια μη κενή συμβολοσειρά:
Εισάγετε μια μη κενή συμβολοσειρά:
Εισάγετε μια μη κενή συμβολοσειρά:
Εισάγετε μια μη κενή συμβολοσειρά: τεστ
τεστ
Παράδειγμα 4: Εισαγωγή μόνο κάποιας από τις τιμές 0, 1, 2, 3
defensive4.py |
---|
| while True:
x = input("Δώσε τιμή ένα από τα 0,1,2,3: ")
if x.isdigit():
if 0 <= int(x) <= 3:
break
print("Λάθος τιμή")
print(x)
|
Παράδειγμα εκτέλεσης:
$ python defensive4.py
Δώσε τιμή ένα από τα 0,1,2,3: -1
Λάθος τιμή
Δώσε τιμή ένα από τα 0,1,2,3: 5
Λάθος τιμή
Δώσε τιμή ένα από τα 0,1,2,3: α
Λάθος τιμή
Δώσε τιμή ένα από τα 0,1,2,3: 3
3