Created
November 22, 2018 18:02
-
-
Save SureshKL/4114dff4dccb163705b78ebf801cb154 to your computer and use it in GitHub Desktop.
Generators
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"# Generators" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Simple generator function yielding 1 number at a time" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0 1 2 3 4 5 6 7 8 9 " | |
] | |
} | |
], | |
"source": [ | |
"def numbers():\n", | |
" for num in range(10):\n", | |
" yield num\n", | |
"\n", | |
"numbers = numbers()\n", | |
"for num in numbers:\n", | |
" print(num, end=' ')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### Yielding values from generator and sending values back" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"0 - Low\n", | |
"2 3 4 5 - Mid\n", | |
"7 8 - High\n" | |
] | |
} | |
], | |
"source": [ | |
"def numbers():\n", | |
" for num in range(10):\n", | |
" pos = yield num\n", | |
" if pos:\n", | |
" print(pos)\n", | |
"\n", | |
"numbers = numbers()\n", | |
"for num in numbers:\n", | |
" print(num, end =' ')\n", | |
" if num == 0:\n", | |
" numbers.send('- Low')\n", | |
" if num == 5:\n", | |
" numbers.send('- Mid')\n", | |
" if num == 8:\n", | |
" numbers.send('- High')\n", | |
"\n", | |
"for num in numbers:\n", | |
" print(num)\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 3", | |
"language": "python", | |
"name": "python3" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 3 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython3", | |
"version": "3.7.0" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 1 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment