likoyrgos Δημοσ. 15 Φεβρουαρίου 2021 Δημοσ. 15 Φεβρουαρίου 2021 Καλησπέρα ! Θέλω να ελέγξω αν μια εισαγωγή που κάνω με την input είναι ακέραιος ή πραγματικός ή συμβολοσειρά. Κάτι που σκέφτηκα είναι : var = input("Dwse kati ") if type(var) == int or type(var)==float : print('edwses arithmo') else: print('edwses string') η οποία δεν δουλεύει γιατί στην έκδοση 3 η εισαγωγή με input τα θεωρεί όλα string (ή κάνω λάθος ?). Στην έκδοση 2 πάλι με απλή input μπορώ να βάλω μόνο αριθμούς και όχι κείμενο μιας και απαιτεί το raw. Υπάρχει κάποια σκέψη και για τις 2 εκδόσεις Python (αν είναι δυνατόν). Ευχαριστώ!
SOADNICK Δημοσ. 15 Φεβρουαρίου 2021 Δημοσ. 15 Φεβρουαρίου 2021 (επεξεργασμένο) Μια πρώτη σκέψη είναι να δοκιμάσεις να κάνεις μόνος σου τις αλλαγές και να δεις αν παίρνεις ValueError. Η δεύτερη σκέψη είναι regex. Επεξ/σία 15 Φεβρουαρίου 2021 από SOADNICK
bilakos26 Δημοσ. 15 Φεβρουαρίου 2021 Δημοσ. 15 Φεβρουαρίου 2021 (επεξεργασμένο) Όχι δεν κάνεις λάθος, τα πιάνει όλα σαν string με αυτόν τον τρόπο. Η μοναδική λύση μέχρι στιγμής που μπόρεσα να σκεφτώ είναι αυτή: var = input("Dwse kati: ") if var.isdigit(): print('edwses arithmo') else: print('edwses string') το isdigit() επιστρέφει αληθές αν η συμβολοσειρά περιέχει μόνο αριθμητικά ψηφία. Αλλά επιστρέφει μόνον αυτό. Δεν ξεχωρίζει αν είναι int ή float. Επεξ/σία 15 Φεβρουαρίου 2021 από bilakos26
likoyrgos Δημοσ. 15 Φεβρουαρίου 2021 Μέλος Δημοσ. 15 Φεβρουαρίου 2021 Σε ευχαριστώ για την απάντηση. Όντως αν δώσω ακέραιο βγάζει το αποτέλεσμα.Για float (που περιέχει και την τελεία) τον βγάζει σαν string
pmav99 Δημοσ. 15 Φεβρουαρίου 2021 Δημοσ. 15 Φεβρουαρίου 2021 H input() επιστρέφει strings. Πρέπει να μετατρέψεις στο type που θες και να κάνεις handle τα πιθανά exceptions. For the record. Υπάρχει και η `ast.literal_eval()` αλλά για να κάνεις αυτή την ερώτηση, θα σου πρότεινα να την αποφύγεις https://docs.python.org/3/library/ast.html#ast.literal_eval 1
coffeex Δημοσ. 16 Φεβρουαρίου 2021 Δημοσ. 16 Φεβρουαρίου 2021 Μία μπακαλίστικη λύση είναι αυτή 😜 try: var = input('Dwse kati ') k =float(var) except: print('Edwses string') else: if var.isdigit(): print('edwses int') else: print(f'edwses float {k}') 2
likoyrgos Δημοσ. 16 Φεβρουαρίου 2021 Μέλος Δημοσ. 16 Φεβρουαρίου 2021 Ok παιδιά με την δική σας βοήθεια κατάλαβα. Ευχαριστώ !
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα