Python 我在turtle模块的penup()函数中遇到了一个错误

Python 我在turtle模块的penup()函数中遇到了一个错误,python,turtle-graphics,Python,Turtle Graphics,以下是我收到的错误消息: Traceback (most recent call last): File "\\tsclient\E\Python34\Doc\mazes5.py", line 62, in <module> sky.penup() File "C:\Python34\lib\turtle.py", line 2107, in penup self.pen(pendown=False) File "C:\Python34\lib\turtl

以下是我收到的错误消息:

Traceback (most recent call last):
  File "\\tsclient\E\Python34\Doc\mazes5.py", line 62, in <module>
    sky.penup()
  File "C:\Python34\lib\turtle.py", line 2107, in penup
    self.pen(pendown=False)
  File "C:\Python34\lib\turtle.py", line 2425, in pen
    self._newLine()
  File "C:\Python34\lib\turtle.py", line 3287, in _newLine
    self._pencolor, self._pensize)
  File "C:\Python34\lib\turtle.py", line 545, in _drawline
    self.cv.coords(lineitem, *cl)
  File "<string>", line 1, in coords
  File "C:\Python34\lib\tkinter\__init__.py", line 2307, in coords
    self.tk.call((self._w, 'coords') + args))]
  File "C:\Python34\lib\tkinter\__init__.py", line 2305, in <listcomp>
    return [getdouble(x) for x in
ValueError: could not convert string to float: 'floating'

您的错误源于
direc
变得无限大的事实。坦率地说,我不明白这个变量应该代表什么,但您似乎在每次迭代时都要向它添加
siz-1
,然后有效地将它乘以
3
(首先乘以
270
,然后除以
90
)。这意味着它呈指数增长,并且由于在进行除法时它变成了一个浮点数,因此当
float
数据类型无法再表示它时,它最终会溢出到无穷大

Python的
turtle
模块在给定无限值时似乎表现得有些糟糕,但这并不意味着它不是您自己代码中的bug


如果
direc
应该是一个角度,那么您可能需要对其进行360模运算。这至少可以防止它无法控制地增长(尽管它可能不会使您的代码有任何意义).

您能发布相关代码以便我们可以查看吗?请发布生成此错误的代码部分…查看您的代码中的字符串
浮动
-您显然在某个需要数字的位置传递了此字符串,并且
penup()
恰好是这个错误实际破坏了某些东西的地方。“浮动”错误在turtle.py模块中,不是我的程序。谢谢!我以为我早就修好了,但显然没有。对不起,我是个白痴
import turtle, random
from turtle import *
maze=[]
mazelev=[]
x=int(input("How many columns?\n"))
y=int(input("How many rows?\n"))
siz=int(input("How wide should the passages be?\n"))
maze=[[5]*x for n in range(y)]
wn=turtle.Screen()
wn.setup(2000, 1000, 0, 0)
sky=turtle.Turtle()
sky.speed(0)
wn.delay(0)
sky.goto(-700, -350)
wn.bgcolor("black")
sky.color("white")
sky.pensize(1)
n=0
tot=0
for i in range(x+1):
    cx=sky.xcor()
    cy=sky.ycor()
    sky.pendown()
    sky.goto(cx, cy+(siz*y))
    sky.penup()
    sky.goto(cx+siz, -350)
sky.goto(-700,-350)
for i in range(y+1):
    cx=sky.xcor()
    cy=sky.ycor()
    sky.pendown()
    sky.goto(cx+(siz*x), cy)
    sky.penup()
    sky.goto(-700, cy+siz)
sky.pensize(siz-1)
sky.color("red")
sky.speed(0)
turtle.tracer(0,0)
num=0
eks=0
why=0
direc=1
sky.goto(-700+(.5*siz),-350+(.5*siz))
for i in range(y):
    for j in range(x):
        eks=-700+(.5*siz)+siz*j
        why=-350+(.5*siz)+siz*i
        sky.goto(eks, why) #second error (when first error is made a comment)
        direc=(direc+siz-1)
        direc=direc//1
        direc=direc*270
        sky.seth(direc)
        sky.pendown()
        sky.forward(siz) #third error
        sky.penup() #first error
        direc=direc/90
    wn.update() #fourth error
sky.goto(-700+(.5*siz),-350-(.5*siz)+siz*y)
sky.pendown()
sky.goto(-700+(.5*siz)+(siz*x),-350-(.5*siz)+siz*y)
sky.penup()
sky.hideturtle()
wn.update()
print("done")