当我偶然发现乌龟模块时,我正在从ThinkPython 2e第4章案例研究:接口设计中做一个例子。
我使用jupyter笔记本作为IDE进行锻炼。这是代码
import turtle
bob = turtle.Turtle()
当我运行上面的代码时,代码被选中,但是Python Turtle Graphic无法以
这样做也是一样,尽管当我运行以下命令时,内核在声明错误之前会忙一会儿
import turtle
bob = turtle.Turtle()
print(bob)
turtle.mainloop()
什么原因导致此错误?
然后我尝试了下一个代码
bob.fd(100)
它只是冻结,所以我不得不中断代码,这是错误
---------------------------------------------------------------------------
KeyboardInterrupt Traceback (most recent call last)
<ipython-input-7-a3ce06f254ac> in <module>
2 bob = turtle.Turtle()
3 print(bob)
----> 4 turtle.mainloop()
~\Anaconda3\lib\turtle.py in mainloop()
~\Anaconda3\lib\turtle.py in mainloop(self)
811
812 """
--> 813 TK.mainloop()
814
815 def textinput(self, title, prompt):
~\Anaconda3\lib\tkinter\__init__.py in mainloop(n)
558 def mainloop(n=0):
559 """Run the main loop of Tcl."""
--> 560 _default_root.tk.mainloop(n)
561
562 getint = int
KeyboardInterrupt:
我尝试引用此线程
Turtle does not run more than once in jupyter notebook
最终使我回到这里
https://medium.com/@jiyuanli93/how-to-make-python-turtle-works-in-jupyter-notebook-6c506b9a973f
或这里
一些信息:当我在Anaconda提示符下运行此
$ jupyter nbextension install --py --symlink --sys-prefix ipyturtle
$ jupyter nbextension enable --py --sys-prefix ipyturtle
它产生了一些问题,但是当我以admin身份运行它们时运行得很好(据说是validating: ok
)
任何帮助将不胜感激,我已经被这个东西困扰了2.5个小时
答案 0 :(得分:1)
我和你有同样的问题。
这对我有用。
将以下代码放入三个Jupyter Notebook单元格中:
单元格1
import turtle
bob = turtle.Turtle()
print(bob)
单元2
for i in range(4):
bob.fd(100)
bob.lt(90)
单元3
turtle.mainloop()
并一一运行。
像你一样,我是菜鸟,但是我认为正在发生的是代码turtle.mainloop()
终止了对象bob或类似的东西。您应该做的是在执行bob.fd(100)
之前执行所有turtle.mainloop()
之类的动作。有道理吗?