Python3海龟将代码保存到文件

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

我是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)
  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
vs
Pen
。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()