Python3海龟将代码保存到文件
我是Python海龟库的新手,有一个问题让我很困惑。 我可以实时使用turtle,但当我编写程序并将其保存到文件时,我无法运行它。 我写的代码如下:Python3海龟将代码保存到文件,python,python-3.x,turtle-graphics,pc,Python,Python 3.x,Turtle Graphics,Pc,我是Python海龟库的新手,有一个问题让我很困惑。 我可以实时使用turtle,但当我编写程序并将其保存到文件时,我无法运行它。 我写的代码如下: from turtle import * speed(9999999) penup() for i in range(16): write(i,align='center') forward(25) goto(0,-5) x=0 right(90) for i in range(16): pendown() forward(400
from turtle import *
speed(9999999)
penup()
for i in range(16):
write(i,align='center')
forward(25)
goto(0,-5)
x=0
right(90)
for i in range(16):
pendown()
forward(400)
penup()
x+=25
goto(x,-5)
但它根本不起作用。
它给了我这个错误:
Traceback (most recent call last):
File "C:\Users\Nobody\Desktop\main.py", line 3, in <module>
turtle.Pen(9999999)
NameError: name 'turtle' is not defined
回溯(最近一次呼叫最后一次):
文件“C:\Users\Nobody\Desktop\main.py”,第3行,在
乌龟笔(999999)
名称错误:未定义名称“海龟”
我认为它根本不进口海龟
新的:
在你的建议下,我修复了我的代码,它现在仍然有效
谢谢你们的帮助
它确实帮助了我你给自己的文件命名了
turtle.py
因此,您的main.py
正在导入您自己的turtle.py
,而不是python的turtle
模块
从桌面删除turtle.py
(以及自动生成的turtle.pyc
)
这一行将所有内容导入默认模块名称空间,因此您不必向任何内容添加turtle.
前缀
而不是turtle.Pen
你只需要Pen
从海龟进口*
字面意思是:从文件turtle.py导入所有内容。
Python解释器首先在当前目录中检查与turtle.py的任何匹配项,如果没有找到任何匹配项,它将在库文件夹中搜索
在您的例子中,您正在从turtle.py导入所有类、所有函数和所有全局变量(至少不是私有变量),因此需要使用
钢笔(999999)
而不是
乌龟笔(999999)
以下是对您的代码进行的重新编写,对我来说运行良好:
from turtle import *
speed('fastest')
penup()
for i in range(16):
write(i, align='center')
forward(25)
goto(0, -5)
right(90)
x = 0
for i in range(16):
pendown()
forward(400)
penup()
x += 25
goto(x, -5)
hideturtle()
done()
如果它适合你,那太好了。如果没有,请告诉我们您得到的完整错误,作为对该答案的后续评论。如@nosklo所述,确保您没有个人turtle.py文件
我的建议是,在调用库函数时,最好是查找,而不是补全。除了命名文件
turtle.py
,您还没有将模块本身导入。您导入了所有函数等,但没有导入模块。因此,turtle.Pen(9999999)
必须是Pen(9999999)
@DyZ,您测试过这个吗?在我的系统上,它会生成KeyError:9999999
,因为9999999不是海龟形状的名称。@cdlane我更关心的是turtle.Pen
vsPen
。9999是另一个错误。@DyZ,很明显,但当你说“必须是笔(9999999)”时,你已经承诺了你自己的调用。总是值得检查发布的代码。或者像这样导入模块本身:import-turtle
。是的,我修复了它,但我忘了在这里编辑它,但它仍然不工作。你测试了吗?在我的系统上,它会生成KeyError:9999999
,因为9999999不是海龟形状的名称。是的,我修复了它,但忘了在这里编辑它,但它仍然不起作用
from turtle import *
speed('fastest')
penup()
for i in range(16):
write(i, align='center')
forward(25)
goto(0, -5)
right(90)
x = 0
for i in range(16):
pendown()
forward(400)
penup()
x += 25
goto(x, -5)
hideturtle()
done()