it-swarm.com.de

Wie überprüfe ich, ob die Roheingabe in Python 2.7 ganzzahlig ist?

Gibt es eine Methode, mit der ich prüfen kann, ob ein raw_input eine ganze Zahl ist?

Ich habe diese Methode nach Recherchen im Web gefunden: 

print isinstance(raw_input("number: ")), int)

aber wenn ich es ausführe und 4 eingebe, bekomme ich zum Beispiel FALSE. Ich bin irgendwie neu in Python, jede Hilfe wäre dankbar. 

13

isinstance(raw_input("number: ")), int) liefert immer False, da raw_input als Ergebnis ein String-Objekt zurückgibt.

Verwenden Sie try: int(...) ... except ValueError:

number = raw_input("number: ")
try:
    int(number)
except ValueError:
    print False
else:
    print True

oder benutze str.isdigit :

print raw_input("number: ").isdigit()

NOTE Die zweite ergibt False für -4, da sie ein nicht-stelliges Zeichen enthält. Verwenden Sie die zweite, wenn Sie nur Ziffern wünschen.

UPDATE Wie J. F. Sebastian darauf hinwies, ist str.isdigit abhängig vom Gebietsschema (Windows). Es könnte True zurückgeben, selbst wenn int() ValueError für die Eingabe auslösen würde.

>>> import locale
>>> locale.getpreferredencoding()
'cp1252'
>>> '\xb2'.isdigit()  # SUPERSCRIPT TWO
False
>>> locale.setlocale(locale.LC_ALL, 'Danish')
'Danish_Denmark.1252'
>>> '\xb2'.isdigit()
True
>>> int('\xb2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: invalid literal for int() with base 10: '\xb2'
19
falsetru

Sie können es so machen:

try:
    val = int(raw_input("number: "))
except ValueError:
    # not an integer
8
Dietrich Epp

hier ist meine Lösung

`x =raw_input('Enter a number or a Word: ')
y = x.isdigit()
if (y == False):
    for i in range(len(x)):
        print('I'),
else:
    for i in range(int(x)):
        print('I'),

`

1
user5322265
def checker():
  inputt = raw_input("how many u want to check?")
  try:
      return int(inputt)
  except ValueError:
      print "Error!, pls enter int!"
      return checker()
0
Frank Musteman

Versuchen Sie diese Methode .isdigit (), siehe Beispiel unten.

user_input = raw_input()
if user_input.isdigit():
    print "That is a number."

else:
    print "That is not a number."

Wenn Sie möchten, dass die Eingabe zur weiteren Verwendung digital bleibt, können Sie Folgendes hinzufügen:

new_variable = int(user_input)
0
Elf Machine