簡體   English   中英

初學者嘗試 Python Turtle 模塊

[英]Beginner trying Python Turtle module

我是一個初學者,只是想弄亂Python。 我使用 Turtle 模塊編寫了一些非常簡單的代碼,但我無法弄清楚為什么 GUI 在完成繪圖后立即關閉?

我已經嘗試過 turtle.getscreen()._root.mainloop() 和 sleep 命令(我的 cmd 無法識別),但無濟於事。 有什么想法嗎?

意識到這是一個微不足道的問題,但人們說理解事物的最佳方法是進入那里並做一些隨機的事情:)

代碼(從評論中提取):

from turtle import *
setup()
title("turtle test")
clear()
down()
forward(50)
right(90)
forward(50)
right(90)
forward(50)
right(90)
forward(500)
turtle.getscreen()._root.mainloop()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'turtle' is not defined

因為你做了from turtle import *你沒有turtle.getscreen()._root.mainloop()turtle模塊,產生上面的錯誤。

相反,請嘗試mainloop()

屏幕不應該“消失”——如果你正確地調用了 mainloop() 方法——但是,如果你的源代碼中存在語法錯誤,或者引發了其他 Python 異常,程序將立即完成。

如果不是單擊您的程序,而是從命令終端運行它,您將看到錯誤回溯。

將其發布在您的問題上(連同您的代碼,格式正確,您可以通過單擊問題上的“編輯”來完成),以便人們可以進一步幫助您。

(順便說一句,以您描述的方式調用 mainloop 方法對我有用)。

現在有一件事:內置的 Python Tkinter 烏龜主要是一個玩具,有趣的部分是在交互模式下與它一起玩,邊走邊輸入命令,而不是用它編寫腳本。 如果您想使用海龜模型進行一些嚴肅的藝術駕駛,您最好編寫自己的海龜。

像這樣修復它

from turtle import *

setup()

title("turtle test")

clear()

down()

forward(50)

right(90)

forward(50)

right(90)

forward(50)

right(90)

forward(500)

done()

我的答案是刪除 root,因為它沒有被分配,這是我的代碼嘗試一下:

from turtle import *
setup()
title("turtle test")
clear()
down()
forward(50)
right(90)
forward(50)
right(90)
forward(50)
right(90)
forward(500)
mainloop()

好的,這可能太多了,但是您可以使用 for 循環(重復一段時間的循環):

from turtle import *
setup()
title("turtle test")
clear()
down()
for i in range(3):
    forward(50)
    right(90)
forward(500)
mainloop()

Python 是一門很棒的語言,請考慮學習它!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM