其他声明计数器在功能范围内(Else statement counter within function)
import rhinoscriptsyntax as rs
def conCir(pt, r):
if r <= 0:
print "Done"
else:
rs.AddCircle(pt, r)
return conCir(pt, r-1)
pt1 = rs.GetPoint("Pick First Point")
pt2 = rs.GetPoint("Pick Second Point")
r = rs.Distance(pt1, pt2)
conCir(pt1, r)
我尝试的是制作同心圆,但是,我无法弄清楚如何计算创建的圆圈数。 在理想情况下,此计数器嵌入在函数中,但是将其放在第一行使得每次调用函数时它都会重置为0。
需要说明的是,完成后功能需要打印“完成”,计数,“绘制圆圈”。
import rhinoscriptsyntax as rs def conCir(pt, r): if r <= 0: print "Done" else: rs.AddCircle(pt, r) return conCir(pt, r-1) pt1 = rs.GetPoint("Pick First Point") pt2 = rs.GetPoint("Pick Second Point") r = rs.Distance(pt1, pt2) conCir(pt1, r)What I try is to make concentric circles, however, I can't figure out how to count the number of circles created. In an ideal situation, this counter is embedded within the function, but placing it on the first line makes it reset to 0 every time the function is called.
To be clear, when finished the function needs to print "Done", count, "circles were drawn."
最满意答案
在递归调用中传递计数器,并在打印Done时打印它
def conCir(pt, r, count=0): if r <= 0: print "Done" print count, " circles were drawn" else: rs.AddCircle(pt, r) return conCir(pt, r-1, count+1)Pass a counter in the recursive call, and print it when printing Done
def conCir(pt, r, count=0): if r <= 0: print "Done" print count, " circles were drawn" else: rs.AddCircle(pt, r) return conCir(pt, r-1, count+1)更多推荐
发布评论