From 7a66371ac203002b778fae5dadc2e6df5363a3da Mon Sep 17 00:00:00 2001 From: harshal Date: Sun, 6 Jun 2021 23:37:18 +0530 Subject: [PATCH] Add python generator and examples --- sheets/_python3/generator | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 sheets/_python3/generator diff --git a/sheets/_python3/generator b/sheets/_python3/generator new file mode 100644 index 0000000..bd23f7e --- /dev/null +++ b/sheets/_python3/generator @@ -0,0 +1,20 @@ +# Declare a function that behaves like an iterator. +# Any function with yeild returns generator. +# Generators follow lazy evaluation. +# lazy evaluation means that the object is evaluated when it is needed, +# not when it is created. + +def my_generator(start, end, step=1): + while start < end: + yeild start + start += step + +gen = my_generator(start=1, end=10) +next(gen), next(gen), next(gen) +# (1, 2, 3) + +gen = (i for i in range(1, 100) if i%2==0) +next(gen), next(gen), next(gen), next(gen) +# (2, 4, 6, 8) + +# https://wiki.python.org/moin/Generators \ No newline at end of file