Δημοσιεύτηκε: 01 Μάιος 2012, 22:08
από Ilias95
Έχε υπόψιν σου ότι εκεί που ζητάς αριθμό μαθημάτων ή τον βαθμό αν ο χρήστης δεν δώσει κάποιον αριθμό το πρόγραμμα θα κρασάρει.

Κώδικας: Επιλογή όλων
>>> b = int(input('Δώσε αριθμό μαθημάτων: '))
Δώσε αριθμό μαθημάτων: δεν σου δίνω
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: 'δεν σου δίνω'
>>>

Αυτό συμβαίνει γιατί προσπαθείς να μετατρέψεις ένα string σε integer πράγμα που δεν είναι δυνατό όλες τις φορές (ανάλογα με την είσοδο).
Αν δεν μπορεί να μετατραπέι το string σε integer θα πάρεις ValueError.

Για να το αντιμετωπίσεις αυτό χρειάζεται να κάνεις exceptions handling (χειρισμό εξαιρέσεων).
Ένα παράδειγμα:

Κώδικας: Επιλογή όλων
try:
a = int(input("Give me an integer: "))
print("Your integer is:", a)
except ValueError:
print("Invalid input")