Προς το περιεχόμενο

Python και πως βρίσκω τον τύπο μιας εισαγωγής απο πληκτρολόγιο.


likoyrgos

Προτεινόμενες αναρτήσεις

Καλησπέρα !

Θέλω να ελέγξω αν μια εισαγωγή που κάνω με την 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 (αν είναι δυνατόν).

Ευχαριστώ!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Μια πρώτη σκέψη είναι να δοκιμάσεις να κάνεις μόνος σου τις αλλαγές και να δεις αν παίρνεις ValueError.

Η δεύτερη σκέψη είναι regex.

 

 

Επεξ/σία από SOADNICK
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Όχι δεν κάνεις λάθος, τα πιάνει όλα σαν string με αυτόν τον τρόπο.

Η μοναδική λύση μέχρι στιγμής που μπόρεσα να σκεφτώ είναι αυτή:

var = input("Dwse kati: ")

if var.isdigit():
    print('edwses arithmo')
else:
     print('edwses string')

το 

isdigit()

επιστρέφει αληθές αν η συμβολοσειρά περιέχει μόνο αριθμητικά ψηφία.

Αλλά επιστρέφει μόνον αυτό. Δεν ξεχωρίζει αν είναι int ή float.

Επεξ/σία από bilakos26
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε ευχαριστώ για την απάντηση.

Όντως αν δώσω ακέραιο βγάζει το αποτέλεσμα.Για float (που περιέχει και την τελεία) τον βγάζει σαν string :-(

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

H input() επιστρέφει strings. Πρέπει να μετατρέψεις στο type που θες και να κάνεις handle τα πιθανά exceptions.

For the record. Υπάρχει και η `ast.literal_eval()` αλλά για να κάνεις αυτή την ερώτηση, θα σου πρότεινα να την αποφύγεις

https://docs.python.org/3/library/ast.html#ast.literal_eval

 

 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...