DarkLord έγραψε:
το παραπάνω menu είναι απο ένα πρόγραμμα calculator
όπου επιλέγεις μια απο τις παραπάνω πράξεις,
σε περίπτωση που κάποιος δώσει στο input ένα string
δηλαδή μια λέξη, μου βγάζει λάθος γιατί το input δέχεται μόνο
αριθμούς
το ερώτημα είναι πως μπορώ να κάνω την input ώστε να δέχεται
string και μετά να ελέγχο την είσοδο με την εντολή if ??
με την raw_input βλέπει τον αριθμό που του δίνω σαν string
Ανάλογα με την έκδοση της python που χρησιμοποιείς:
Για python 2.6:
To input() είναι το ίδιο με το eval(raw_input(..)). Δες περισσότερα γράφοντας στον python interpreter: help(input). Αυτό σημαίνει ότι αν ο χρήσης εισάγει ένα string θα χτυπήσει με exception. Οπότε θα ήταν καλύτερα πιστεύω να χρησιμοποιήσεις το raw_input() για το μενού νομίζω. Πχ
- Κώδικας: Επιλογή όλων
try:
selection = raw_input("Choose your option: ").strip()[0]
except (EOFError, KeyboardInterrupt):
selection = '5'
return selection
Αν θες να επιστρέφεις int αντι για string, μπορείς να το κάνεις ως εξής:
- Κώδικας: Επιλογή όλων
try:
int(selection)
except ValueError:
print '%s is not a number' % selection
Για python 3:
Το input() έχει αντικαταστήσει το raw_input() και έχει πλέον την ίδια λειτουργία με το τελευταίο, αν δεν κάνω λάθος (από ότι διαβάζω καθώς δεν χρησιμοποιώ python v3).
BTW ο οδηγός που διαβάζεις (
http://www.sthurlow.com/python/lesson05/) και αναφέρει το calculator.py έχει γραφεί για python 2.4, οπότε αρκετά πράγματα αλλάζουν σε νεότερες εκδόσεις.
Ίσως κάποιος άλλος να έχει καλύτερη λύση; Πολλές φορές με την python από 5 γραμμές κώδικα καταλήγεις να χρειάζεσαι μόνο 1 τελικά
