首先,“问题”的链接:
http://interactivepython.org/courselib/static/thinkcspy/Labs/montepi.html
在设置计数器之前,我做得很好。一旦我明白了这一点,我就有信心去做剩下的事情。
import turtle
import math
import random
fred = turtle.Turtle()
fred.shape("circle")
wn = turtle.Screen()
wn.setworldcoordinates(-1,-1,1,1)
def main():
count = 0
def ifDist():
if fred.distance(0,0) > 1:
fred.color("blue")
else:
fred.color("red")
counter()
def counter():
count = count + 1
return count
def darts():
numdarts = 2
for i in range(numdarts):
randx = random.random()
randy = random.random()
x = randx
y = randy
fred.penup()
fred.goto(randx, randy)
ifDist()
fred.stamp()
fred.goto(randx, -randy)
ifDist()
fred.stamp()
fred.goto(-randx, randy)
ifDist()
fred.stamp()
fred.goto(-randx, -randy)
ifDist()
fred.stamp()
darts()
print(count)
main()
wn.exitonclick()
它不断为计数器打印 0。我已经尝试了几天(至少这段代码没有给出错误消息......)我确信这是一个简单的修复,但我只是不知道它会是什么。任何帮助将不胜感激。
编辑:在 else 语句中包含 counter() ,就像我之前在修改它时所做的那样。它现在调用计数器,但我也得到一个错误:
回溯(最近一次通话最后):文件“C:\Users\USER\Google Drive\School\PYTHON\5_16_piEstimator.py”,第 53 行,在 main() 文件“C:\Users\USER\Google Drive\School\ PYTHON\5_16_piEstimator.py”,第 49 行,主要 darts() 文件“C:\Users\USER\Google Drive\School\PYTHON\5_16_piEstimator.py”,第 37 行,在 darts ifDist() 文件“C:\Users \USER\Google Drive\School\PYTHON\5_16_piEstimator.py”,第 20 行,在 ifDist counter() 文件“C:\Users\USER\Google Drive\School\PYTHON\5_16_piEstimator.py”,第 23 行,在计数器计数中= count + 1 UnboundLocalError:赋值前引用了局部变量“count”