索引结束时重复计数器

时间:2018-05-03 15:20:30

标签: python loops while-loop counter

简单的问题 - 我想要一个循环计数,当它达到一定数量时返回0。

尝试过类似的事情:

while i < 7:
    i += 1
    if i == 7
        i -= 1   #(or change i in any other way - you get the idea)

当我尝试上述操作时,我的Python实际上崩溃了。

编辑:是的,永远不会遇到if条件 - 但是当我将其更改为if i == 6时它仍会崩溃。

3 个答案:

答案 0 :(得分:0)

如果你想要数到7,那么倒数到0就可以尝试:

i = 0
add = True
while True:
    if add:
        i += 1
    else:
        i -= 1

    if i in [0, 7]:
        add = not add

答案 1 :(得分:0)

while i < 7:
      i += 1
      if i == 7:
         i = 0

问题是i- = 1行。你的代码可以工作,因为我最多可以计算6,但是当它达到6时,它会增加到7,然后再减去6。您当前的序列是0,1,2,3,4,5,6,6,6,6,......

答案 2 :(得分:0)

这是您更正后的代码,

import numpy as np

def write_svgarc(xcenter,ycenter,r,startangle,endangle,output='arc.svg'):
    if startangle > endangle: 
        raise ValueError("startangle must be smaller than endangle")

    if endangle - startangle < 360:
        large_arc_flag = 0
        radiansconversion = np.pi/180.
        xstartpoint = xcenter + r*np.cos(startangle*radiansconversion)
        ystartpoint = ycenter - r*np.sin(startangle*radiansconversion)
        xendpoint = xcenter + r*np.cos(endangle*radiansconversion)
        yendpoint = ycenter - r*np.sin(endangle*radiansconversion)
        #If we want to plot angles larger than 180 degrees we need this
        if endangle - startangle > 180: large_arc_flag = 1
        with open(output,'a') as f:
            f.write(r"""<path d=" """)
            f.write("M %s %s" %(xstartpoint,ystartpoint))
            f.write("A %s %s 0 %s 0 %s %s" 
                    %(r,r,large_arc_flag,xendpoint,yendpoint))
            f.write("L %s %s" %(xcenter,ycenter))
            f.write(r"""Z"/>""" )

    else:
        with open(output,'a') as f:
            f.write(r"""<circle cx="%s" cy="%s" r="%s"/>"""
                    %(xcenter,ycenter,r))

达到6时达到0。 很多语法错误已修复。