Συνθήκες και αποφάσεις — DedSec Project
Συνθήκες — αποκλειστικές επιλογές και ακριβή όρια Η έννοια και το αναμενόμενο αποτέλεσμα Μία συνθήκη επιλέγει ποια βήματα εκτελούνται. Ο εκπαιδευόμενος παίρνει retry κάτω από 50, passed από…
Συνθήκες — αποκλειστικές επιλογές και ακριβή όρια
Η έννοια και το αναμενόμενο αποτέλεσμα
Μία συνθήκη επιλέγει ποια βήματα εκτελούνται. Ο εκπαιδευόμενος παίρνει retry κάτω από 50, passed από 50 έως 89 και excellent από 90 έως 100. Τα διαστήματα δεν πρέπει ούτε να επικαλύπτονται ούτε να αφήνουν κενά. Πρώτα απορρίπτουμε μη επιτρεπτές βαθμολογίες και έπειτα τις ταξινομούμε. Οι εντολές if και elif δημιουργούν σαφείς, αμοιβαία αποκλειόμενες διαδρομές.
Εκτελέσιμη άσκηση Python 3
Αποθήκευσε ως 03_Conditions.py και εκτέλεσε με Python 3. Πρώτα πρόβλεψε το αποτέλεσμα· όλοι οι έλεγχοι χρησιμοποιούν απλές τεχνητές τιμές χωρίς δίκτυο.
def outcome(score):
if type(score) is not int or not 0 <= score <= 100:
raise ValueError("score must be 0..100")
if score >= 90:
return "excellent"
elif score >= 50:
return "passed"
return "retry"
assert [outcome(x) for x in (0,49,50,89,90,100)] == [
"retry","retry","passed","passed","excellent","excellent"]
for bad in (-1,101,50.5,True):
try: outcome(bad)
except ValueError: pass
else: raise AssertionError("invalid score accepted")
print("PASS branch and boundary checks")
Γιατί λειτουργεί
Η Python ελέγχει τις συνθήκες από πάνω προς τα κάτω. Αν το όριο των 50 εξεταστεί πριν το όριο των 90, ένας βαθμός 95 μπορεί λανθασμένα να χαρακτηριστεί passed. Ο έλεγχος τύπου αποκλείει True και δεκαδικούς αριθμούς επειδή η προδιαγραφή δέχεται μόνο ακεραίους. Οι δοκιμές περιλαμβάνουν τιμές ακριβώς πριν και πάνω σε κάθε όριο. Το == συγκρίνει τιμές, ενώ το = εκχωρεί όνομα και δεν είναι υποκατάστατο της σύγκρισης.
Καθοδηγούμενη εξάσκηση
Γράψε πρώτα έναν πίνακα για τις τιμές 49, 50, 89 και 90. Αντάλλαξε προσωρινά τις συνθήκες και εξήγησε το λανθασμένο αποτέλεσμα. Πρόσθεσε κατηγορία 'good' για 70–89 χωρίς να χαλάσουν οι προηγούμενες περιπτώσεις 0–49, 50–69 και 90–100. Κράτησε έλεγχο ακριβώς πριν και πάνω στο νέο όριο.
Αντιμετώπιση λαθών
Λανθασμένη ταξινόμηση συνήθως σημαίνει λάθος σειρά συνθηκών ή ανεπαρκή έλεγχο εισόδου. Εξέτασε τον τύπο του βαθμού και κάθε σύγκριση. Μην πιάνεις κάθε εξαίρεση επιστρέφοντας retry, γιατί αυτή είναι έγκυρη κατηγορία και όχι μήνυμα σφάλματος.