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

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 (αν είναι δυνατόν).

Ευχαριστώ!

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

6 απαντήσεις σε αυτή την ερώτηση

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

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

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

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

 

 

Επεξ/σία από SOADNICK
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0
Δημοσ. (επεξεργασμένο)

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

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

var = input("Dwse kati: ")

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

το 

isdigit()

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

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

Επεξ/σία από bilakos26
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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

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

Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες
  • 0

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
Σύνδεσμος στην ανάρτηση
Κοινοποίηση σε άλλες σελίδες

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

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

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

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

Εγγραφείτε για έναν νέο λογαριασμό

Σύνδεση

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

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

Με την περιήγησή σας στο insomnia.gr, αποδέχεστε τη χρήση cookies που ενισχύουν σημαντικά την εμπειρία χρήσης.