2017-12-03 6 views
1

Ich habe versucht, zu machen, ein einfaches fizzbuzz Programm in Python zu schreiben, Ich versuchte isinstance zu verwenden, um zu bestimmen, ob eine Zahl eine float oder ein int ist statt dessen eine Liste erstellen, aber wenn ich es versuchen Aus irgendeinem Grund betrachtet es jede Zahl als Float. Ist das eine Sache in Python oder ein Fehler in meiner Logik?Python scheint jede Variable einen Schwimmer

i = 3 
if isinstance(i/3,float) == False: 
    print("Fizz") 
else: 
    print("???") 

Antwort

1

Der / Operator gibt ein float. Selbst wenn der Wert durch eine Ganzzahl ausgedrückt werden könnte, erhalten Sie immer noch eine float. Zum Beispiel gibt 3/3 den Wert float von 1.0 zurück. Stattdessen können Sie den Rest direkt mit dem Operator % überprüfen:

if i % 3 == 0: 
    print("Fizz") 
else: 
    print("???")