python - while 循环内无限 while 循环

标签 python infinite-loop rhino3d

我写了我的第一行(在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/

相关文章:

python - 使用python将行插入Postgresql

java - HashMap if containsValue 无限循环问题

c# - 此方法的参数预期是什么?

python - 使用 np.triu_indices 生成索引

python - 操作系统错误 : [Errno 24] Too many open files: '/dev/null' or No IP is showing on my connected network

使用ssl和socket的python客户端身份验证

JavaScript:更改无限循环的超时时间?

JavaScript 无限 For 循环

c# - 从坐标节点索引