web-dev-qa-db-ja.com

タートルグラフィックスが応答しない

Pythonでturtleパッケージを使用して図を作成していますが、1つの問題を除いて、ある程度は成功しています。 turtleがコードにある図を生成すると、プログラムに「応答していません」と表示され、最終的にタスクを終了する必要があります。私はWindows7を使用しています。

これを経験したり、根本的な原因を知っている人はいますか? Pythonを完全に再インストールしようとしましたが、問題には影響しなかったようです。

応答に失敗するコードの例を次に示します。

import turtle
from turtle import forward, right, left

forward(50)
15
ElectroNerd

私は同じ問題を抱えていました(私はWin 7でも同じ問題を抱えていましたが、Win XPでも同じ問題が発生しました)、そして私はそれを理解しました。

終わったらturtle.done()と言わなければなりません。

Pythonはタートルが完了したことを知らないので、おそらくタートルの別のコマンドを待っているので、これを知ったので、より理にかなっています。

これが私があなたが使っていると思うライブラリのドキュメント(Python 2.7)です。それは私がそれを理解した方法です。それはPython 2.7ですが、これもPython 2.5で動作します。
http://docs.python.org/library/turtle.html

それが役立つことを願っています(あなたやこれを読んでいる他の人にとって)、
アレックス

17
aengelberg

最後にexitonclickの呼び出しを追加するだけです。 TurtleクラスはTkinterを使用して実装され、exitonclick()mainloop()を呼び出します。これにより、キャンバス内の任意の場所をクリックするまで、タートルウィンドウが開いたままになります。したがって、単純なプログラムは次のようになります。

from turtle import *
#make a square
for _ in range(4):
   forward(100)
   left(90)
exitonclick()

楽しい!

9
arevirlegna

mainloop()またはexitonclick()またはdone()、またはタートルウィンドウを終了するpython)を示すものを追加します

2

python 3.6.0を使用していますが、同じ問題が発生しました。コードブロックの後のturtle.done()は、タートルグラフィックウィンドウが応答しなくなるのを防ぎます。

import turtle 

for _ in range(5):
    turtle.forward(100)
    turtle.right(360/5)

turtle.done() # <------------
2
Joseph Welt

IDLEに問題があります。 pythonコマンドラインから実行すると機能します

1
PyPy

私はあなたの問題に遭遇したことがあります、そしてそれから私は次のようにIDLEのショートカットを作成しようとします(「-n」を忘れないでください):

target:D:\Python27\Lib\idlelib\idle.pyw -n

そして、ショートカットでIDLEを起動し、年コードを入力してお楽しみください!FYI。

0
Chorola

コードの最後に次の行を追加します。

wait_for_user()

それはあなたの問題を解決するはずです!

0
Sahba

Python 3.4.3:でこれを修正する方法

>>> help(turtle.bye)
Help on function bye in module turtle:

bye()
    Shut the turtlegraphics window.

    Example:
    >>> bye()
0
Jshura

turtle.done()を使用する場合、1回目は機能しますが、2回目は機能しません。

これを解決するには:

turtle.done()
try:
    turtle.bye()   
except turtle.Terminator:
    pass

ここから Spyderでタートルプログラムを実行する際の問題

0

IDLEのコードを試しましたが、完全に機能しました。古い/遅いマシンはありますか?それは問題ではないと思いますが。最後に行を追加してみてください。

exitonclick()

カメが少し気質に見えるのと同じように。また、問題を解決または解決した回答を見つけた場合は、必ず賛成して回答(質問の近くの矢印アイコン)を受け入れてください。そうしないと、質問が未解決として表示され、引き続き回答が得られます。

-ハリー

0
HarryCBurn