Πώς μπορώ να ελέγξω αν η συμβολοσειρά εισόδου ενός χρήστη είναι αριθμός (π.χ. -1
, 0
, 1
, κ.λπ.);
user_input = input("Enter something:")
if type(user_input) == int:
print("Is a number")
else:
print("Not a number")
Το παραπάνω δεν θα'δουλέψει αφού το input
επιστρέφει πάντα μια συμβολοσειρά.
Απλά δοκιμάστε να το μετατρέψετε σε int και στη συνέχεια να εγκαταλείψετε αν δεν δουλέψει.
try:
val = int(userInput)
except ValueError:
print("That's not an int!")
Προφανώς αυτό δεν θα λειτουργήσει για αρνητικές τιμές, αλλά θα λειτουργήσει για θετικές. Συγγνώμη γι' αυτό, μόλις έμαθα γι' αυτό πριν από λίγες ώρες, καθώς μόλις πρόσφατα ασχολήθηκα με την Python.
Χρησιμοποιήστε την isdigit()
if userinput.isdigit():
#do stuff
Για την Python 3 τα ακόλουθα θα λειτουργήσουν.
userInput = 0
while True:
try:
userInput = int(input("Enter something: "))
except ValueError:
print("Not an integer!")
continue
else:
print("Yes an integer!")
break