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

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

Δημοσ.

Καλησπέρα !

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

Μία μπακαλίστικη λύση είναι αυτή 😜

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}')

 

  • Like 2

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

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

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

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

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

Σύνδεση

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

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