1175 Stimmen

Prüfung, ob eine Variable eine ganze Zahl ist oder nicht

Wie prüfe ich, ob eine Variable eine ganze Zahl ist?

0 Stimmen

@katrielalex: Wenn er meine Antwort als die richtige gewählt hat, bedeutet das nicht, dass Hulk den von Ihnen erwähnten Eindruck hatte. Es gibt auch die ValueError Ausnahmemöglichkeit, die VOR der type() .

0 Stimmen

@Hulk: Ich will wirklich nicht dafür werben, dass Sie meine Antwort akzeptieren - Sie können sie gerne an Ashish zurückgeben; er hat eine absolut gültige und technisch korrekte Antwort gegeben. Ich wollte nur sicherstellen, dass Sie auch den Rest der Ratschläge auf dieser Seite gelesen haben.

0 Stimmen

@katrielalex: Ashish hatte Recht, aber die Kodierungsszenarien brauchten die Ausnahmeklausel, und so habe ich meine Antwort geändert, nichts für ungut, Ashish.

5voto

PradeepNama Punkte 451

Hier ist ein einfaches Beispiel, wie Sie eine ganze Zahl bestimmen können

def is_int(x):
    print round(x),
    if x == round(x):
        print 'True',
    else:
        print 'False'

is_int(7.0)   # True
is_int(7.5)   # False
is_int(-1)    # True

5voto

kxr Punkte 3782

In Anwesenheit von numpy prüfen wie ..

isinstance(var, numbers.Integral)

.. (langsam) oder ..

isinstance(var, (int, long, np.integer))

, um alle Typvarianten zu finden, wie np.int8 , np.uint16 , ...

(Tropfen long in PY3)

Erkennen von ANY Ein ganzzahliges Objekt von irgendwoher zu finden, ist ein kniffliges Ratespiel. Überprüfen Sie

var & 0 == 0 

für Wahrheit und Nicht-Ausnahme kann eine gute Wette sein. In ähnlicher Weise kann die Prüfung auf ausschließlich vorzeichenbehaftete Integer-Typen :

var ^ -1 ==  -var - 1

4voto

hiteshn97 Punkte 97

Eine einfache Möglichkeit, dies zu tun, besteht darin, direkt zu prüfen, ob der Rest bei der Division durch 1 0 ist oder nicht.

if this_variable % 1 == 0:
    list.append(this_variable)
else:
    print 'Not an Integer!'

0 Stimmen

Dies funktioniert nicht, wenn die Variable z. B. eine Zeichenkette ist. Sie müssten die Ausnahme abfangen, usw. Siehe besser stackoverflow.com/a/3501408/2574719

4voto

Ramon Suarez Punkte 311

Wenn die Variable wie eine Zeichenkette eingegeben wird (z. B. '2010' ):

if variable and variable.isdigit():
    return variable #or whatever you want to do with it. 
else: 
    return "Error" #or whatever you want to do with it.

Bevor ich dies benutzte, habe ich es mit try/except und Überprüfung auf (int(variable)) , aber es war ein längerer Code. Ich frage mich, ob es einen Unterschied in der Nutzung von Ressourcen oder Geschwindigkeit.

1 Stimmen

So wird zum Beispiel "-3" nicht verarbeitet.

3voto

the noob Punkte 31

Verwenden Sie die Funktion int als Hilfe

intchecker = float(input('Please enter a integer: '))
intcheck = 0
while intcheck != 1:
    if intchecker - int(intchecker) > 0:
        intchecker = float(input("You didn't enter a integer. "
                                 "Please enter a integer: "))
    else:
        intcheck = 1
print('you have entered a integer')

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X