TypeError: range() integer end-argument erwartet, bekam float?

Ich weiß, das wurde vorher gefragt, aber die Antworten haben mir nicht geholfen :/

Ich wurde eine Funktion erstellt, läuft eine for-Schleife über die quadrierte max der Eingänge, und von allen Konten, mein code ist korrekt...und doch ist es immer noch fragt, für float-Eingänge.

def spiral(X, Y):

x = y = 0
dx = 0
dy = 0
count = 0

for i in range(max(X, Y)**2):
    if (-X/2.0 < x <= X/20) and (-Y/2.0 < y <= Y/2.0):
        print (x, y)

    if x == y or (x < 0 and x == -y) or (x > 0 and x == 1-y):
        dx, dy = -dy, dx

    x, y = x+dx, y+dy

print-Spirale(3.0,3.0)

Und ich bekomme diese Fehlermeldung: TypeError: range() integer end argument expected, got float.

Aber ich habe 3.0, wenn ich versuche und drucken die Funktion...also was bin ich?

Dank 🙂

  • Du bist die vorbeifahrenden Festwagen, die für die Werte der X und Y pass in Ganzzahlen statt.
  • dies ist, wie ich die Funktion aufrufen: Druck Spirale(3.0, 3.0)
  • Genau. 3.0 Typ float, nicht int. :-).
  • for i in range(max(int(X), int(Y))**2):
  • Das hat geklappt. So lese ich es als...erwartet, float bekam integer. Genau das Gegenteil ist.
  • Floating-point-Parameter abgesehen, vielleicht ist Ihr code korrekt ist, oder vielleicht sollten Sie einen dx-oder dy-1...
  • Bitte stackoverflow.com/questions/16090050/...

InformationsquelleAutor Chef1075 | 2015-02-06
Schreibe einen Kommentar