我需要帮助将此程序转换为使用python 2.7 for循环的while循环

时间:2018-04-15 21:21:59

标签: python python-2.7 loops for-loop while-loop

将此for循环转换为while循环查找pi

import turtle
import math
import random

t = turtle.Turtle()
wn = turtle.Screen()
wn.setworldcoordinates(-400,-400,400,400)

t.pu()
t.speed(0)
t.goto(0,-400)
t.pd()
t.color("green")
t.circle(400)
t.color("red")
hits=0.0
numdarts = 100
for i in range(numdarts):
    randx = random.uniform(-1,1)
    randy = random.uniform(-1,1)
    if (randx**2+ randy**2)<1:
        hits+=1.0

    t.pu()
    t.goto(400*randx,400*randy)
    t.pd()
    t.dot()
print 4*(hits/numdarts)
wn.exitonclick()

想要使用while循环代替估算pi的值,给出可接受的近似误差量

2 个答案:

答案 0 :(得分:0)

你只需要检查numdarts是否是bisher而不是0和倒计时numdarts。 像这样:

numdarts =100
while numdarts > 0:
     numdarts-=1
     [rest of Loop]

虽然我没有看到,为什么你应该在这个特殊用例中执行此操作,因为你可能遇到无限循环。

答案 1 :(得分:0)

将此for循环转换为while循环:

i = 0
while True:
    #your code
    i += 1
    if i == numdarts:
        break

这基本上保持从0到99的循环,与范围(100)相同