我試著做一個簡單的開關,當我按下一個鍵時,它會改變一個變量(在本例中是switchvalue)。我的方法似乎不起作用,關鍵的檢測就我所知起作用了。
import turtle
from turtle import Turtle, Screen
screen = Screen()
jack = Turtle("turtle")
jack.color("red", "green")
jack.pensize(10)
jack.speed(0)
switchvalue = 1
def switch():
global switchvalue
if switchvalue == 1:
switchvalue = 0
if switchvalue == 0:
switchvalue = 1
turtle.listen()
turtle.onkey(switch,"s")
screen.mainloop()
if switchvalue == 0:
jack.forward(100)
你在函數
switch()
中的邏輯錯誤。看看當switchvalue
是1
時,begging中會發生什么如您所見,您正在將
switchvalue
更改為0
,然后檢查它是否為0
,然后將它更改回1
,換句話說,兩個if
語句都被執行。您應該改為使用elif
或else
,這樣,如果一個成功,if
循環(隱喻地說)將中斷,另一個if
將不會被檢查。