coroutine01.py 433 B

123456789101112131415161718192021222324252627
  1. from time import sleep
  2. def countdown_gen(n, consumer):
  3. consumer.send(None)
  4. while n > 0:
  5. consumer.send(n)
  6. n -= 1
  7. consumer.send(None)
  8. def countdown_con():
  9. while True:
  10. n = yield
  11. if n:
  12. print(f'Countdown {n}')
  13. sleep(1)
  14. else:
  15. print('Countdown Over!')
  16. def main():
  17. countdown_gen(5, countdown_con())
  18. if __name__ == '__main__':
  19. main()