我写了我的第一行(在SO的帮助下):
import rhinoscriptsyntax as rs
obj = rs.GetObject("Select a curve", rs.filter.curve)
maxd = input("max offset: ")
a = input("first offset: ")
b = input("next offset: ")
if rs.IsCurve(obj):
i=0
while i < maxd:
rs.OffsetCurve( obj, [0,0,0], -i )
i += a
rs.OffsetCurve( obj, [0,0,0], -i )
i += b
现在我尝试通过插入偏移输入列表来进一步实现。但似乎我最后得到了无限循环。此外,第一个 rs.OffsetCurve()
似乎运行了两次,或者 i
未随着第二个 rs.OffserCurve()
的第一次运行而更新> while 循环。
import rhinoscriptsyntax as rs
obj = rs.GetObject("Select a curve", rs.filter.curve)
maxd = input("max offset: ")
a = input("first offset: ")
offlist = []
while True:
b = input("next offset or 0 for exit: ")
offlist.append(b)
if b == 0:
break
if rs.IsCurve(obj):
i=0
while i < maxd:
rs.OffsetCurve( obj, [0,0,0], -i )
i = a
c = len(offlist)
k = 0
while k != c:
rs.OffsetCurve( obj, [0,0,0], -i )
i = offlist[k]
k += 1
最佳答案
while i < maxd:
以及i = a
在循环的每一步并且不改变 maxd
也不a
在两个周期中都可能导致这种行为。
顺便说一句,我会考虑以这样的方式命名您的变量,以便您或任何其他开发人员只需查看一下即可了解这里发生的情况。另外,您可以考虑使用嵌套 while
是否是一个好主意。在这种情况下循环。
关于python - while 循环内无限 while 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50177624/