我需要帮助将这个程序转换成一个while循环,使用Python2.7从for循环转换成while循环

我需要帮助将这个程序转换成一个while循环,使用Python2.7从for循环转换成while循环,python,python-2.7,loops,for-loop,while-loop,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

将此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()
导入海龟
输入数学
随机输入
t=海龟。海龟()
wn=tutle.Screen()
wn.SetWorld坐标(-400,-400400)
t、 pu()
t、 速度(0)
t、 后藤(0,-400)
t、 pd()
t、 颜色(“绿色”)
t、 圆圈(400)
t、 颜色(“红色”)
点击率=0.0
numdarts=100
对于范围内的i(numdarts):
randx=随机均匀(-1,1)
randy=随机均匀(-1,1)

如果(randx**2+randy**2)您只需要检查numdarts是否大于0,并对numdarts进行倒计时。 像这样:

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

虽然我不明白,为什么在这个特殊的用例中要这样做,因为您可能会遇到一个无止境的循环。

要将这个
for
循环转换为
while
循环:

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

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

是什么阻止了你这样做?