我需要帮助将这个程序转换成一个while循环,使用Python2.7从for循环转换成while循环
将此for循环转换为while循环查找pi我需要帮助将这个程序转换成一个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
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)相同。是什么阻止了你这样做?