Τι είναι πρόγραμμα; — DedSec Project
Τι είναι πρόγραμμα; Μία ελέγξιμη σχέση εισόδου και εξόδου Η έννοια και το αναμενόμενο αποτέλεσμα Το πρόγραμμα είναι βήματα που εκτελεί ο υπολογιστής πάνω σε δεδομένα. Για μία μικρή απόδειξη…
Τι είναι πρόγραμμα; Μία ελέγξιμη σχέση εισόδου και εξόδου
Η έννοια και το αναμενόμενο αποτέλεσμα
Το πρόγραμμα είναι βήματα που εκτελεί ο υπολογιστής πάνω σε δεδομένα. Για μία μικρή απόδειξη αγοράς, είσοδοι είναι η τιμή σε ακέραια λεπτά και το πλήθος τεμαχίων. Έξοδος είναι το συνολικό ποσό σε λεπτά. Πριν τον κώδικα καθόρισε το επιτρεπτό πεδίο: η τιμή δεν μπορεί να είναι αρνητική και το πλήθος είναι ακέραιος από μηδέν έως 100. Ένας συντακτικά σωστός πολλαπλασιασμός μπορεί να δίνει λανθασμένο αποτέλεσμα αν δέχεται ανεξέλεγκτα αρνητικά ποσά.
Εκτελέσιμη άσκηση Python 3
Αποθήκευσε ως 01_What_is_a_program.py και εκτέλεσε με Python 3. Πρώτα πρόβλεψε το αποτέλεσμα· όλοι οι έλεγχοι χρησιμοποιούν απλές τεχνητές τιμές χωρίς δίκτυο.
def total_cents(price_cents, count):
if type(price_cents) is not int or price_cents < 0:
raise ValueError("price must be nonnegative integer cents")
if type(count) is not int or not 0 <= count <= 100:
raise ValueError("invalid quantity")
return price_cents * count
assert total_cents(125, 3) == 375
assert total_cents(125, 0) == 0
for inputs in ((-1,2),(100,-1),(100,101),(True,2)):
try: total_cents(*inputs)
except ValueError: pass
else: raise AssertionError("invalid inputs accepted")
print("PASS input -> checked rule -> output")
Γιατί λειτουργεί
Η συνάρτηση διαχωρίζει τον υπολογισμό από την παρουσίαση και επιστρέφει τιμή αντί να τυπώνει μέσα στη λογική. Η διεπαφή μπορεί αργότερα να εμφανίζει ευρώ, αλλά ο πυρήνας χρησιμοποιεί ακέραια λεπτά για να αποφύγει λάθη δεκαδικής προσέγγισης. Ο έλεγχος type(...) is int αποκλείει λογικές τιμές, παρότι η bool σχετίζεται με την int στην Python. Το νόμιμο σύνολο μηδέν δεν είναι ίδιο με άκυρη είσοδο.
Καθοδηγούμενη εξάσκηση
Σχεδίασε τρία κουτιά: είσοδος, επικύρωση, έξοδος. Άλλαξε την τιμή σε 149 λεπτά και την ποσότητα σε τέσσερα· υπολόγισε πρώτα στο χαρτί τα 596 λεπτά. Δοκίμασε μηδενική ποσότητα και τις τέσσερις απορρίψεις. Πρόσθεσε μέγιστη επιτρεπτή τιμή και ελέγχους εκατέρωθεν του ορίου. Η ίδια είσοδος πρέπει να δίνει το ίδιο αποτέλεσμα.
Αντιμετώπιση λαθών
Αν το αποτέλεσμα είναι περίεργο, εξέτασε πρώτα τις δύο τιμές και αν μετρώνται σε ευρώ ή λεπτά. Για αποτυχία κράτησε την ακριβή είσοδο και το traceback. Μία επιτυχημένη δοκιμή αποδεικνύει συμπεριφορά μόνο για τις τιμές που ελέγχθηκαν.