函数中的Else语句计数器

2024-09-30 00:40:06 发布

您现在位置:Python中文网/ 问答频道 /正文

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

要清楚的是,完成函数时需要打印“Done”,计数“circles were drawing”


Tags: 函数importptifdefaspointrs
2条回答

在递归调用中传递一个计数器,并在打印时打印它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)

与Barmar的答案相同,扩展了调试打印

Python 3打印()

只是打印而不是打电话给Circle进行说明

为递归添加了默认变量count = 0

def conCir(pt, r, count = 0):
    if r <= 0:
        print("Done", 'count= ', count)
    else:
        print('AddinCircle ',pt, r) # rs.AddCircle(pt, r)
        return conCir(pt, r-1, count + 1)

conCir('fred', 5) # count default = 0, no need to enter in call

AddinCircle  fred 5
AddinCircle  fred 4
AddinCircle  fred 3
AddinCircle  fred 2
AddinCircle  fred 1
Done count=  5

相关问题 更多 >

    热门问题