<p>您的<code>counter = counter + 1</code>错误。当您的<code>isInScreen</code>返回<code>False</code>时,while循环中断,代码结束,因为计数器正在递增,但您不会再次循环。参见以下准则-</p>
<pre><code>import turtle
import random
def isInScreen(w,t):
leftBound = w.window_width() / -2.0
rightBound = w.window_width() / 2.0
bottomBound = w.window_height() / -2.0
topBound = w.window_height() / 2.0
turtlex = t.xcor()
turtley = t.ycor()
if turtlex < leftBound or turtlex > rightBound or turtley < bottomBound or turtley > topBound:
return False
return True
def randomWalk(t,w):
counter = 0
while True:
while isInScreen(w,t):
coin = random.randrange(0,2)
if coin == 0:
t.left(90)
else:
t.right(90)
t.forward(50)
t.left(180)
t.forward(50)
counter += 1
if counter == 4:
break
wn = turtle.Screen()
wn.bgcolor('lightcyan')
steklovata = turtle.Turtle()
steklovata.color('darkslategray')
steklovata.shape('turtle')
randomWalk(steklovata,wn)
wn.exitonclick()
</code></pre>
<p>如果{cd6><cd6}不需要存储变量。(以上代码中反映的变更)。在</p>