美文网首页
利用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