此代碼片段來自在中學教授的Python課程。該文件導入烏龜,然後隨機,以便在繪製正方形時從列表中選擇顏色。我試圖改變如果到一個while循環,並得到意想不到的結果。循環在num = 0之後繼續,無限期地打印0。我嘗試刪除調用 sqspin(num-1)之外的減量,並在上面的行上執行遞減,如下所示:num = num -1 此更改開始隨機更改每個連續循環的num的打印值在num第一次達到0之後。我不明白爲什麼當num> 0不會在num = 0時終止循環,或者num的隨機值來自哪裏。任何線索? 我正在運行3.4.3,但學校使用2.7。導入隨機影響使用while循環嗎?
from turtle import *
from random import *
shape("turtle")
st()
def sq():
fd(100)
rt(90)
fd(100)
rt(90)
fd(100)
rt(90)
fd(100)
rt(90)
colors = ['red', 'green', 'orange', 'blue', 'yellow']
def pickcolor():
return choice(colors)
def sqspin(num):
print(num)
if num > 0:
sq()
rt(5)
mycolor = pickcolor()
pencolor(mycolor)
sqspin(num-1)
sqspin(5)
爲什麼添加行號? –
因爲你永遠不會改變'num'!您在遞歸調用中傳遞'num-1',但不會在調用者中更改'num'。 –
什麼是'sq'?我錯過了什麼嗎? –