美文网首页
利用while True: break 解决 asyncio

利用while True: break 解决 asyncio

作者: 程序里的小仙女 | 来源:发表于2020-06-30 17:28 被阅读0次
    break可结束for循环,也可结束while循环,结束离自己最近的循环
    1. 在if 循环中,break的作用
    def test1():
        my_redis = Redis(db=7)
        for i in range(1, 1000):
            my_redis.lpush("redis_test", i)
            print(f"push {i}  to redis")
            if i == 990:
                break
    
    if __name__ == '__main__':
        test1()
    

    2.主要针对一个bug:

            协程报错 :           asyncio:Future exception was never retrieved !
    

    在加入while True: 死循环的时候:就可以解决.

    from redis import Redis
    
    def test():
        my_redis = Redis(db=7)
        while True:
            for i in range(1, 100):
                my_redis.lpush("redis_test", i)
                print(f"push {i}  to redis")
                if i == 99:
                    break
            break
    

    这里需要两个break,不然会一直在while中打印if中的内容!

    1. 在表示判断条件是否成立的时候,if 和 while 是等效的:
      下面例子中的函数 test 和 test2 效果相同:
    from redis import Redis
    
    def test():
        my_redis = Redis(db=7)
        while True:
            for i in range(1, 100):
                my_redis.lpush("redis_test", i)
                print(f"push {i}  to redis")
                if i == 99:
                    break
            break
    def test1():
        my_redis = Redis(db=7)
        for i in range(1, 1000):
            my_redis.lpush("redis_test", i)
            print(f"push {i}  to redis")
            # while i == 990:
            # 等效于
            if i == 990:
                break
    def test2():
        my_redis = Redis(db=7)
        while True:
            for i in range(1, 1000):
                my_redis.lpush("redis_test", i)
                print(f"push {i}  to redis")
                while i == 999:
                    break
            break
    if __name__ == '__main__':
        test1()
    

    相关文章

      网友评论

          本文标题:利用while True: break 解决 asyncio

          本文链接:https://www.haomeiwen.com/subject/jdgxqktx.html