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
undY
pass in Ganzzahlen statt. - dies ist, wie ich die Funktion aufrufen: Druck Spirale(3.0, 3.0)
- Genau.
3.0
Typfloat
, nichtint
. :-). 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/...
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie andere gesagt haben, im Kommentar, das problem ist vor allem, weil der float-Wert in range-Funktion. Da die range-Funktion nicht annehmen float-Typ als argument.