雜亂大全17-解決turtle-無法回應

  • 前言:本次為turtle的基本練習
tags: 六角學院

主題:

雜亂大全17-解決turtle-無法回應

本篇重點:

  • 在前篇中,有提到turtle執行兩次後,會出現沒有回應的現象
  • 暫時的解法: 使用工作管理員關閉後重開
  • 本篇將使用 多進程來處理這問題~

安裝模組

1
pip install multiprocess

使用

1
import multiprocessing

使用方式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import multiprocessing
import time
import turtle

#要處理的事情
def job1():
#要執行的turtle程式

if __name__ == '__main__':
print(" ")
print("======Start======")
print("Run...")
pro = multiprocessing.Process( target=job1 )
pro.start()
time.sleep(2)
print("------------")

while True:
keyy = input("Press Enter to stop the APP...")

if keyy:
pass
else:
print("Waiting...")
pro.terminate()
print("=======END=======")
print(" ")
break

執行

將要執行的turtle程式
寫在 函式job1內部
執行完成要關閉時,對著 終端機按下enter 即可關閉
重新執行後,就不會有問題!


範例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# -*- coding: utf-8 -*-

import multiprocessing
import time
import turtle
colors=["red","blue","green","yellow","pink","purple"]
#要處理的事情
def job1():


shelly = turtle.Turtle()
turtle.speed('fastest')
turtle.bgcolor('black') # turn background black
# make 36 hexagons, each 10 degrees apart
for n in range(4):
# make hexagon by repeating 6 times
for i in range(6):
shelly.color(colors[i]) # pick color at position i
shelly.forward(100)
shelly.left(60)
# add a turn before the next hexagon
shelly.right(10)

# get ready to draw 36 circles
shelly.penup()

#結束

shelly.color('white')
# repeat 36 times to match the 36 hexagons
for i in range(4):
shelly.forward(220)
shelly.pendown()
shelly.circle(5)
shelly.penup()
shelly.backward(220)
shelly.right(10)


turtle.mainloop()


if __name__ == '__main__':
print(" ")
print("======Start======")
print("Run...")
pro = multiprocessing.Process( target=job1 )
pro.start()
time.sleep(2)
print("------------")

while True:
keyy = input("Press Enter to stop the APP...")

if keyy:
pass
else:
print("Waiting...")
pro.terminate()
print("=======END=======")
print(" ")
break