python如何退出while循环并继续父循环?

时间:2015-08-20 05:55:57

标签: python-3.3

当我的代码退出while while循环和if语句时:

if im.getpixel((258,375)) == (30,37,43):
    battle = True
    print('lets Battle!!')
    time.sleep(10)
    leftClick()
    while battle == True:
        mousePos(503,487)
        leftClick()
        leftClick()
        time.sleep(5)
        im = screenGrab()
        if im.getpixel((258,375)) != (30,37,43) and im.getpixel((258,375)) != (99, 114, 121) and im.getpixel((258,375)) != (225, 225, 225):
            battle = False
            break
    print('battle Over')
    break

代码在while循环结束时结束:

while 1 == 1:
    im = screenGrab()
    if im.getpixel((258,375)) == (30,37,43):
        battle = True
        print('lets Battle!!')
        time.sleep(10)
        leftClick()
        while battle == True:
            mousePos(503,487)
            leftClick()
            leftClick()
            time.sleep(5)
            im = screenGrab()
            if im.getpixel((258,375)) != (30,37,43) and   im.getpixel((258,375)) != (99, 114, 121) and im.getpixel((258,375)) != (225, 225, 225):
                battle = False
                break
        print('battle Over')
        break
    left(2)
    right(2)

我已经尝试了很多年但是我不能让left()和right()运行并且循环在if语句结束后继续。

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

您在template <typename T> void arrayToMap(const T arr[], size_t arrSize, std::unordered_map<T, int>& map) { for(int i = arraySize - 1; i >= 0; --i) { map[arr[i]] = i; } } 声明之后致电break

print

您的第一个print('battle Over') break 语句退出第二个break,上述while退出您的第一个break

如果您不想在while语句后退出父break,只需删除while语句。

答案 1 :(得分:0)

Break退出当前循环(while或for)不是'if'或'else'。使用'continue'来打破当前的迭代。并且您的代码有2个中断删除外部中断,它应该按预期工作。