Je reçois cette erreur pour mon simple programme en python: “TypeError: 'float' objet ne peut pas être interprété comme un entier”
Je ne comprends pas pourquoi je ne peux pas utiliser ma variable c
.
code:
from turtle import *
speed(0)
hideturtle()
c = 450
def grid(x,y,a):
seth(0)
pu()
goto(x,y)
pd()
for i in range(4):
forward(a)
rt(90)
for i in range(c/10):
seth(0)
forward(10)
rt(90)
forward(c)
backward(c)
for i in range(c/10):
seth(0)
rt(90)
forward(10)
rt(90)
forward(c)
backward(c)
pu()
goto(a+10,0)
write("x")
goto(0,a+10)
write("y")
pd()
grid(0,0,c)
grid(-c,0,c)
grid(-c,c,c)
grid(0,c,c)
Je reçois le message d'erreur suivant:
Traceback (most recent call last):
File "C:\Users\nick\Desktop\gridv2.py", line 35, in <module>
grid(0,0,c)
File "C:\Users\nick\Desktop\gridv2.py", line 15, in grid
for i in range(c/10):
TypeError: 'float' object cannot be interpreted as an integer
OriginalL'auteur remorath | 2013-11-06
Vous devez vous connecter pour publier un commentaire.
:
Vous êtes en train de créer un flotteur en conséquence - pour corriger cela, utilisez la fonction int opérateur de division:
OriginalL'auteur Jon Clements
range()
ne peut travailler qu'avec des entiers, mais en divisant la/
opérateur entraîne toujours une valeur float:Faire la valeur d'un nombre entier de nouveau:
ou utiliser le
//
étage opérateur de division:OriginalL'auteur Martijn Pieters
Comme indiqué ci-dessous,
range
prend uniquement en charge les entiers:Cependant,
c/10
est un float, car/
toujours renvoie un float.Avant de le mettre dans
range
, vous avez besoin de fairec/10
un entier. Cela peut être fait en le mettant dansint
:ou en utilisant
//
, qui renvoie un entier:OriginalL'auteur iCodez