|
215 | 215 | <strong><span class="hljs-string"><span class="hljs-string">'3. Syntax'</span></span></strong>: [<a href="#arguments">Args</a>, <a href="#inline">Inline</a>, <a href="#closure">Closure</a>, <a href="#decorator">Decorator</a>, <a href="#class">Class</a>, <a href="#ducktypes">Duck_Types</a>, <a href="#enum">Enum</a>, <a href="#exceptions">Exceptions</a>],
|
216 | 216 | <strong><span class="hljs-string"><span class="hljs-string">'4. System'</span></span></strong>: [<a href="#print">Print</a>, <a href="#input">Input</a>, <a href="#commandlinearguments">Command_Line_Arguments</a>, <a href="#open">Open</a>, <a href="#path">Path</a>, <a href="#commandexecution">Command_Execution</a>],
|
217 | 217 | <strong><span class="hljs-string"><span class="hljs-string">'5. Data'</span></span></strong>: [<a href="#csv">CSV</a>, <a href="#json">JSON</a>, <a href="#pickle">Pickle</a>, <a href="#sqlite">SQLite</a>, <a href="#bytes">Bytes</a>, <a href="#struct">Struct</a>, <a href="#array">Array</a>, <a href="#memoryview">MemoryView</a>, <a href="#deque">Deque</a>],
|
218 |
| - <strong><span class="hljs-string"><span class="hljs-string">'6. Advanced'</span></span></strong>: [<a href="#threading">Threading</a>, <a href="#introspection">Introspection</a>, <a href="#metaprograming">Metaprograming</a>, <a href="#operator">Operator</a>, <a href="#eval">Eval</a>, <a href="#coroutine">Coroutine</a>], |
| 218 | + <strong><span class="hljs-string"><span class="hljs-string">'6. Advanced'</span></span></strong>: [<a href="#threading">Threading</a>, <a href="#operator">Operator</a>, <a href="#eval">Eval</a>, <a href="#introspection">Introspection</a>, <a href="#metaprograming">Metaprograming</a>, <a href="#coroutine">Coroutine</a>], |
219 | 219 | <strong><span class="hljs-string"><span class="hljs-string">'7. Libraries'</span></span></strong>: [<a href="#progressbar">Progress_Bar</a>, <a href="#plot">Plot</a>, <a href="#table">Table</a>, <a href="#curses">Curses</a>, <a href="#logging">Logging</a>, <a href="#scraping">Scraping</a>, <a href="#web">Web</a>, <a href="#profile">Profile</a>,
|
220 | 220 | <a href="#numpy">NumPy</a>, <a href="#image">Image</a>, <a href="#audio">Audio</a>]
|
221 | 221 | }
|
|
1751 | 1751 | results = executor.map(<span class="hljs-keyword">lambda</span> x: x + <span class="hljs-number">1</span>, range(<span class="hljs-number">3</span>)) <span class="hljs-comment"># (1, 2, 3)</span>
|
1752 | 1752 | </code></pre></div>
|
1753 | 1753 |
|
| 1754 | +<div><h2 id="operator"><a href="#operator" name="operator">#</a>Operator</h2><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> add, sub, mul, truediv, floordiv, mod, pow, neg, abs |
| 1755 | +<span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> eq, ne, lt, le, gt, ge |
| 1756 | +<span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> and_, or_, not_ |
| 1757 | +<span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> itemgetter, attrgetter, methodcaller |
| 1758 | +</code></pre></div> |
| 1759 | + |
| 1760 | +<pre><code class="python language-python hljs"><span class="hljs-keyword">import</span> operator <span class="hljs-keyword">as</span> op |
| 1761 | +sorted_by_second = sorted(<collection>, key=op.itemgetter(<span class="hljs-number">1</span>)) |
| 1762 | +sorted_by_both = sorted(<collection>, key=op.itemgetter(<span class="hljs-number">1</span>, <span class="hljs-number">0</span>)) |
| 1763 | +product_of_elems = functools.reduce(op.mul, <collection>) |
| 1764 | +LogicOp = enum.Enum(<span class="hljs-string">'LogicOp'</span>, {<span class="hljs-string">'AND'</span>: op.and_, <span class="hljs-string">'OR'</span> : op.or_}) |
| 1765 | +last_el = op.methodcaller(<span class="hljs-string">'pop'</span>)(<list>) |
| 1766 | +</code></pre> |
| 1767 | +<div><h2 id="eval"><a href="#eval" name="eval">#</a>Eval</h2><pre><code class="python language-python hljs"><span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> ast <span class="hljs-keyword">import</span> literal_eval |
| 1768 | +<span class="hljs-meta">>>> </span>literal_eval(<span class="hljs-string">'1 + 2'</span>) |
| 1769 | +<span class="hljs-number">3</span> |
| 1770 | +<span class="hljs-meta">>>> </span>literal_eval(<span class="hljs-string">'[1, 2, 3]'</span>) |
| 1771 | +[<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>] |
| 1772 | +<span class="hljs-meta">>>> </span>literal_eval(<span class="hljs-string">'abs(1)'</span>) |
| 1773 | +ValueError: malformed node or string |
| 1774 | +</code></pre></div> |
| 1775 | + |
1754 | 1776 | <div><h2 id="introspection"><a href="#introspection" name="introspection">#</a>Introspection</h2><p><strong>Inspecting code at runtime.</strong></p><div><h3 id="variables">Variables</h3><pre><code class="python language-python hljs"><list> = dir() <span class="hljs-comment"># Names of variables in current scope.</span>
|
1755 | 1777 | <dict> = locals() <span class="hljs-comment"># Dict of local variables. Also vars().</span>
|
1756 | 1778 | <dict> = globals() <span class="hljs-comment"># Dict of global variables.</span>
|
|
1832 | 1854 | | str | |
|
1833 | 1855 | +---------+-------------+
|
1834 | 1856 | </code></pre>
|
1835 |
| -<div><h2 id="operator"><a href="#operator" name="operator">#</a>Operator</h2><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> add, sub, mul, truediv, floordiv, mod, pow, neg, abs |
1836 |
| -<span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> eq, ne, lt, le, gt, ge |
1837 |
| -<span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> and_, or_, not_ |
1838 |
| -<span class="hljs-keyword">from</span> operator <span class="hljs-keyword">import</span> itemgetter, attrgetter, methodcaller |
1839 |
| -</code></pre></div> |
1840 |
| - |
1841 |
| -<pre><code class="python language-python hljs"><span class="hljs-keyword">import</span> operator <span class="hljs-keyword">as</span> op |
1842 |
| -sorted_by_second = sorted(<collection>, key=op.itemgetter(<span class="hljs-number">1</span>)) |
1843 |
| -sorted_by_both = sorted(<collection>, key=op.itemgetter(<span class="hljs-number">1</span>, <span class="hljs-number">0</span>)) |
1844 |
| -product_of_elems = functools.reduce(op.mul, <collection>) |
1845 |
| -LogicOp = enum.Enum(<span class="hljs-string">'LogicOp'</span>, {<span class="hljs-string">'AND'</span>: op.and_, <span class="hljs-string">'OR'</span> : op.or_}) |
1846 |
| -last_el = op.methodcaller(<span class="hljs-string">'pop'</span>)(<list>) |
1847 |
| -</code></pre> |
1848 |
| -<div><h2 id="eval"><a href="#eval" name="eval">#</a>Eval</h2><pre><code class="python language-python hljs"><span class="hljs-meta">>>> </span><span class="hljs-keyword">from</span> ast <span class="hljs-keyword">import</span> literal_eval |
1849 |
| -<span class="hljs-meta">>>> </span>literal_eval(<span class="hljs-string">'1 + 2'</span>) |
1850 |
| -<span class="hljs-number">3</span> |
1851 |
| -<span class="hljs-meta">>>> </span>literal_eval(<span class="hljs-string">'[1, 2, 3]'</span>) |
1852 |
| -[<span class="hljs-number">1</span>, <span class="hljs-number">2</span>, <span class="hljs-number">3</span>] |
1853 |
| -<span class="hljs-meta">>>> </span>literal_eval(<span class="hljs-string">'abs(1)'</span>) |
1854 |
| -ValueError: malformed node or string |
1855 |
| -</code></pre></div> |
1856 |
| - |
1857 | 1857 | <div><h2 id="coroutine"><a href="#coroutine" name="coroutine">#</a>Coroutine</h2><ul>
|
1858 | 1858 | <li><strong>Similar to generator, but generator pulls data through the pipe with iteration, while coroutine pushes data into the pipeline with send().</strong></li>
|
1859 | 1859 | <li><strong>Coroutines provide more powerful data routing possibilities than iterators.</strong></li>
|
|
1981 | 1981 | <li><strong><code class="python hljs"><span class="hljs-string">'<timedelta>'</span></code> - Max age of a file.</strong></li>
|
1982 | 1982 | <li><strong><code class="python hljs"><span class="hljs-string">'<str>'</span></code> - Max age as a string: <code class="python hljs"><span class="hljs-string">'1 week, 3 days'</span></code>, <code class="python hljs"><span class="hljs-string">'2 months'</span></code>, …</strong></li>
|
1983 | 1983 | </ul>
|
1984 |
| -<div><h2 id="scraping"><a href="#scraping" name="scraping">#</a>Scraping</h2><div><h4 id="scrapespythonsurlversionnumberandlogofromwikipediapage">Scrapes Python's URL, version number and logo from Wikipedia page:</h4><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install requests beautifulsoup4</span> |
| 1984 | +<div><h2 id="scraping"><a href="#scraping" name="scraping">#</a>Scraping</h2><div><h4 id="scrapespythonslogourlandversionnumberfromwikipediapage">Scrapes Python's logo, URL and version number from Wikipedia page:</h4><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install requests beautifulsoup4</span> |
1985 | 1985 | <span class="hljs-keyword">import</span> requests
|
1986 | 1986 | <span class="hljs-keyword">from</span> bs4 <span class="hljs-keyword">import</span> BeautifulSoup
|
1987 | 1987 | url = <span class="hljs-string">'https://en.wikipedia.org/wiki/Python_(programming_language)'</span>
|
|
0 commit comments