Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit ca15335

Browse files
committed
Math, CSV, SQLite, Threading, NumPy, Synthesizer
1 parent 9e40184 commit ca15335

File tree

3 files changed

+61
-83
lines changed

3 files changed

+61
-83
lines changed

README.md

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -500,7 +500,7 @@ Numbers
500500
### Math
501501
```python
502502
from math import e, pi, inf, nan, isinf, isnan
503-
from math import cos, acos, sin, asin, tan, atan, degrees, radians
503+
from math import cos, sin, tan, acos, asin, atan, degrees, radians
504504
from math import log, log10, log2
505505
```
506506

@@ -599,7 +599,7 @@ from dateutil.tz import UTC, tzlocal, gettz, datetime_exists, resolve_imaginary
599599
```
600600
* **Use `'<D/DT>.weekday()'` to get the day of the week (Mon == 0).**
601601
* **`'fold=1'` means the second pass in case of time jumping back for one hour.**
602-
* **`'<DTa> = resolve_imaginary(<DTa>)'` fixes DTs that fall into the missing hour.**
602+
* **`'<DTa> = resolve_imaginary(<DTa>)'` fixes DTs that fall into missing hour.**
603603

604604
### Now
605605
```python
@@ -1782,15 +1782,15 @@ import csv
17821782
<list> = next(<reader>) # Returns next row as a list of strings.
17831783
<list> = list(<reader>) # Returns list of remaining rows.
17841784
```
1785-
* **File must be opened with `'newline=""'` argument, or newlines embedded inside quoted fields will not be interpreted correctly!**
1785+
* **File must be opened with a `'newline=""'` argument, or newlines embedded inside quoted fields will not be interpreted correctly!**
17861786

17871787
### Write
17881788
```python
17891789
<writer> = csv.writer(<file>) # Also: `dialect='excel', delimiter=','`.
17901790
<writer>.writerow(<collection>) # Encodes objects using `str(<el>)`.
17911791
<writer>.writerows(<coll_of_coll>) # Appends multiple rows.
17921792
```
1793-
* **File must be opened with `'newline=""'` argument, or '\r' will be added in front of every '\n' on platforms that use '\r\n' line endings!**
1793+
* **File must be opened with a `'newline=""'` argument, or '\r' will be added in front of every '\n' on platforms that use '\r\n' line endings!**
17941794

17951795
### Parameters
17961796
* **`'dialect'` - Master parameter that sets the default values.**
@@ -1805,15 +1805,15 @@ import csv
18051805
### Dialects
18061806
```text
18071807
+------------------+--------------+--------------+--------------+
1808-
| | excel | excel-tab | unix |
1808+
| | excel | excel-tab | unix |
18091809
+------------------+--------------+--------------+--------------+
1810-
| delimiter | ',' | '\t' | ',' |
1811-
| quotechar | '"' | '"' | '"' |
1812-
| doublequote | True | True | True |
1813-
| skipinitialspace | False | False | False |
1814-
| lineterminator | '\r\n' | '\r\n' | '\n' |
1815-
| quoting | 0 | 0 | 1 |
1816-
| escapechar | None | None | None |
1810+
| delimiter | ',' | '\t' | ',' |
1811+
| quotechar | '"' | '"' | '"' |
1812+
| doublequote | True | True | True |
1813+
| skipinitialspace | False | False | False |
1814+
| lineterminator | '\r\n' | '\r\n' | '\n' |
1815+
| quoting | 0 | 0 | 1 |
1816+
| escapechar | None | None | None |
18171817
+------------------+--------------+--------------+--------------+
18181818
```
18191819

@@ -1879,10 +1879,10 @@ with <conn>:
18791879

18801880
```python
18811881
>>> conn = sqlite3.connect('test.db')
1882-
>>> conn.execute('create table person (person_id integer primary key, name, height)')
1883-
>>> conn.execute('insert into person values (null, ?, ?)', ('Jean-Luc', 187)).lastrowid
1882+
>>> conn.execute('CREATE TABLE person (person_id INTEGER PRIMARY KEY, name, height)')
1883+
>>> conn.execute('INSERT INTO person VALUES (NULL, ?, ?)', ('Jean-Luc', 187)).lastrowid
18841884
1
1885-
>>> conn.execute('select * from person').fetchall()
1885+
>>> conn.execute('SELECT * FROM person').fetchall()
18861886
[(1, 'Jean-Luc', 187)]
18871887
```
18881888

@@ -2087,7 +2087,7 @@ from concurrent.futures import ThreadPoolExecutor
20872087

20882088
```python
20892089
<Exec> = ThreadPoolExecutor(max_workers=None) # Or: `with ThreadPoolExecutor() as <name>: …`
2090-
<Exec>.shutdown(wait=True) # Gets called at the end of 'with' block.
2090+
<Exec>.shutdown(wait=True) # Blocks until all threads finish executing.
20912091
```
20922092

20932093
```python
@@ -2542,7 +2542,7 @@ duration = perf_counter() - start_time
25422542
### Timing a Snippet
25432543
```python
25442544
>>> from timeit import timeit
2545-
>>> timeit('"".join(str(i) for i in range(100))',
2545+
>>> timeit("''.join(str(i) for i in range(100))",
25462546
... number=10000, globals=globals(), setup='pass')
25472547
0.34986
25482548
```
@@ -2623,24 +2623,22 @@ indexes = <array>.argmin(axis)
26232623

26242624
### Indexing
26252625
```bash
2626-
<el> = <2d_array>[0, 0] # First element.
2627-
<1d_view> = <2d_array>[0] # First row.
2628-
<1d_view> = <2d_array>[:, 0] # First column. Also [..., 0].
2629-
<3d_view> = <2d_array>[None, :, :] # Expanded by dimension of size 1.
2626+
<el> = <2d_array>[row_index, column_index]
2627+
<1d_view> = <2d_array>[row_index]
2628+
<1d_view> = <2d_array>[:, column_index]
26302629
```
26312630

26322631
```bash
2633-
<1d_array> = <2d_array>[<1d_row_indexes>, <1d_column_indexes>]
2634-
<2d_array> = <2d_array>[<2d_row_indexes>, <2d_column_indexes>]
2632+
<1d_array> = <2d_array>[row_indexes, column_indexes]
2633+
<2d_array> = <2d_array>[row_indexes]
2634+
<2d_array> = <2d_array>[:, column_indexes]
26352635
```
26362636

26372637
```bash
2638-
<2d_bools> = <2d_array> > 0
2638+
<2d_bools> = <2d_array> ><== <el>
26392639
<1d_array> = <2d_array>[<2d_bools>]
26402640
```
26412641

2642-
* **If row and column indexes differ in shape, they are combined with broadcasting.**
2643-
26442642
### Broadcasting
26452643
**Broadcasting is a set of rules by which NumPy functions operate on arrays of different sizes and/or dimensions.**
26462644

@@ -2899,8 +2897,8 @@ Synthesizer
28992897
#### Plays Popcorn by Gershon Kingsley:
29002898
```python
29012899
# $ pip3 install simpleaudio
2902-
import simpleaudio, math, struct
2903-
from itertools import chain, repeat
2900+
import math, struct, simpleaudio
2901+
from itertools import repeat, chain
29042902
F = 44100
29052903
P1 = '71♩,69♪,,71♩,66♪,,62♩,66♪,,59♩,,,'
29062904
P2 = '71♩,73♪,,74♩,73♪,,74♪,,71♪,,73♩,71♪,,73♪,,69♪,,71♩,69♪,,71♪,,67♪,,71♩,,,'

index.html

Lines changed: 26 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -606,7 +606,7 @@
606606
</code></pre></div>
607607

608608
<div><h3 id="math">Math</h3><pre><code class="python language-python hljs"><span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> e, pi, inf, nan, isinf, isnan
609-
<span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> cos, acos, sin, asin, tan, atan, degrees, radians
609+
<span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> cos, sin, tan, acos, asin, atan, degrees, radians
610610
<span class="hljs-keyword">from</span> math <span class="hljs-keyword">import</span> log, log10, log2
611611
</code></pre></div>
612612

@@ -681,7 +681,7 @@
681681
<ul>
682682
<li><strong>Use <code class="python hljs"><span class="hljs-string">'&lt;D/DT&gt;.weekday()'</span></code> to get the day of the week (Mon == 0).</strong></li>
683683
<li><strong><code class="python hljs"><span class="hljs-string">'fold=1'</span></code> means the second pass in case of time jumping back for one hour.</strong></li>
684-
<li><strong><code class="python hljs"><span class="hljs-string">'&lt;DTa&gt; = resolve_imaginary(&lt;DTa&gt;)'</span></code> fixes DTs that fall into the missing hour.</strong></li>
684+
<li><strong><code class="python hljs"><span class="hljs-string">'&lt;DTa&gt; = resolve_imaginary(&lt;DTa&gt;)'</span></code> fixes DTs that fall into missing hour.</strong></li>
685685
</ul>
686686
<div><h3 id="now">Now</h3><pre><code class="python language-python hljs">&lt;D/DTn&gt; = D/DT.today() <span class="hljs-comment"># Current local date or naive datetime.</span>
687687
&lt;DTn&gt; = DT.utcnow() <span class="hljs-comment"># Naive datetime from current UTC time.</span>
@@ -1626,15 +1626,15 @@
16261626
</code></pre></div>
16271627

16281628
<ul>
1629-
<li><strong>File must be opened with <code class="python hljs"><span class="hljs-string">'newline=""'</span></code> argument, or newlines embedded inside quoted fields will not be interpreted correctly!</strong></li>
1629+
<li><strong>File must be opened with a <code class="python hljs"><span class="hljs-string">'newline=""'</span></code> argument, or newlines embedded inside quoted fields will not be interpreted correctly!</strong></li>
16301630
</ul>
16311631
<div><h3 id="write">Write</h3><pre><code class="python language-python hljs">&lt;writer&gt; = csv.writer(&lt;file&gt;) <span class="hljs-comment"># Also: `dialect='excel', delimiter=','`.</span>
16321632
&lt;writer&gt;.writerow(&lt;collection&gt;) <span class="hljs-comment"># Encodes objects using `str(&lt;el&gt;)`.</span>
16331633
&lt;writer&gt;.writerows(&lt;coll_of_coll&gt;) <span class="hljs-comment"># Appends multiple rows.</span>
16341634
</code></pre></div>
16351635

16361636
<ul>
1637-
<li><strong>File must be opened with <code class="python hljs"><span class="hljs-string">'newline=""'</span></code> argument, or '\r' will be added in front of every '\n' on platforms that use '\r\n' line endings!</strong></li>
1637+
<li><strong>File must be opened with a <code class="python hljs"><span class="hljs-string">'newline=""'</span></code> argument, or '\r' will be added in front of every '\n' on platforms that use '\r\n' line endings!</strong></li>
16381638
</ul>
16391639
<div><h3 id="parameters">Parameters</h3><ul>
16401640
<li><strong><code class="python hljs"><span class="hljs-string">'dialect'</span></code> - Master parameter that sets the default values.</strong></li>
@@ -1646,15 +1646,15 @@
16461646
<li><strong><code class="python hljs"><span class="hljs-string">'quoting'</span></code> - Controls the amount of quoting: 0 - as necessary, 1 - all.</strong></li>
16471647
<li><strong><code class="python hljs"><span class="hljs-string">'escapechar'</span></code> - Character for escaping 'quotechar' if 'doublequote' is False.</strong></li>
16481648
</ul><div><h3 id="dialects">Dialects</h3><pre><code class="text language-text">┏━━━━━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━┯━━━━━━━━━━━━━━┓
1649-
┃ │ excel │ excel-tab │ unix ┃
1649+
┃ │ excel │ excel-tab │ unix ┃
16501650
┠──────────────────┼──────────────┼──────────────┼──────────────┨
1651-
┃ delimiter │ ',' '\t' ',' ┃
1652-
┃ quotechar │ '"' '"' '"' ┃
1653-
┃ doublequote │ True True True ┃
1654-
┃ skipinitialspace │ False │ False │ False ┃
1655-
┃ lineterminator │ '\r\n' │ '\r\n' │ '\n' ┃
1656-
┃ quoting │ 001
1657-
┃ escapechar │ None None None ┃
1651+
┃ delimiter │ ',' '\t' ','
1652+
┃ quotechar │ '"' '"' '"'
1653+
┃ doublequote │ True True │ True
1654+
┃ skipinitialspace │ False │ False │ False ┃
1655+
┃ lineterminator │ '\r\n' │ '\r\n' │ '\n'
1656+
┃ quoting │ 001
1657+
┃ escapechar │ None None │ None
16581658
┗━━━━━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┷━━━━━━━━━━━━━━┛
16591659
</code></pre></div></div>
16601660

@@ -1703,10 +1703,10 @@
17031703

17041704

17051705
<div><h3 id="example">Example</h3><p><strong>In this example values are not actually saved because <code class="python hljs"><span class="hljs-string">'conn.commit()'</span></code> is omitted!</strong></p><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span>conn = sqlite3.connect(<span class="hljs-string">'test.db'</span>)
1706-
<span class="hljs-meta">&gt;&gt;&gt; </span>conn.execute(<span class="hljs-string">'create table person (person_id integer primary key, name, height)'</span>)
1707-
<span class="hljs-meta">&gt;&gt;&gt; </span>conn.execute(<span class="hljs-string">'insert into person values (null, ?, ?)'</span>, (<span class="hljs-string">'Jean-Luc'</span>, <span class="hljs-number">187</span>)).lastrowid
1706+
<span class="hljs-meta">&gt;&gt;&gt; </span>conn.execute(<span class="hljs-string">'CREATE TABLE person (person_id INTEGER PRIMARY KEY, name, height)'</span>)
1707+
<span class="hljs-meta">&gt;&gt;&gt; </span>conn.execute(<span class="hljs-string">'INSERT INTO person VALUES (NULL, ?, ?)'</span>, (<span class="hljs-string">'Jean-Luc'</span>, <span class="hljs-number">187</span>)).lastrowid
17081708
<span class="hljs-number">1</span>
1709-
<span class="hljs-meta">&gt;&gt;&gt; </span>conn.execute(<span class="hljs-string">'select * from person'</span>).fetchall()
1709+
<span class="hljs-meta">&gt;&gt;&gt; </span>conn.execute(<span class="hljs-string">'SELECT * FROM person'</span>).fetchall()
17101710
[(<span class="hljs-number">1</span>, <span class="hljs-string">'Jean-Luc'</span>, <span class="hljs-number">187</span>)]
17111711
</code></pre></div>
17121712

@@ -1865,7 +1865,7 @@
18651865

18661866

18671867
<pre><code class="python language-python hljs">&lt;Exec&gt; = ThreadPoolExecutor(max_workers=<span class="hljs-keyword">None</span>) <span class="hljs-comment"># Or: `with ThreadPoolExecutor() as &lt;name&gt;: …`</span>
1868-
&lt;Exec&gt;.shutdown(wait=<span class="hljs-keyword">True</span>) <span class="hljs-comment"># Gets called at the end of 'with' block.</span>
1868+
&lt;Exec&gt;.shutdown(wait=<span class="hljs-keyword">True</span>) <span class="hljs-comment"># Blocks until all threads finish executing.</span>
18691869
</code></pre>
18701870
<pre><code class="python language-python hljs">&lt;iter&gt; = &lt;Exec&gt;.map(&lt;func&gt;, &lt;args_1&gt;, ...) <span class="hljs-comment"># A multithreaded and non-lazy map().</span>
18711871
&lt;Futr&gt; = &lt;Exec&gt;.submit(&lt;func&gt;, &lt;arg_1&gt;, ...) <span class="hljs-comment"># Starts a thread and returns its Future object.</span>
@@ -2214,7 +2214,7 @@
22142214
</code></pre></div>
22152215

22162216
<div><h3 id="timingasnippet">Timing a Snippet</h3><pre><code class="python language-python hljs"><span class="hljs-meta">&gt;&gt;&gt; </span><span class="hljs-keyword">from</span> timeit <span class="hljs-keyword">import</span> timeit
2217-
<span class="hljs-meta">&gt;&gt;&gt; </span>timeit(<span class="hljs-string">'"".join(str(i) for i in range(100))'</span>,
2217+
<span class="hljs-meta">&gt;&gt;&gt; </span>timeit(<span class="hljs-string">"''.join(str(i) for i in range(100))"</span>,
22182218
<span class="hljs-meta">... </span> number=<span class="hljs-number">10000</span>, globals=globals(), setup=<span class="hljs-string">'pass'</span>)
22192219
<span class="hljs-number">0.34986</span>
22202220
</code></pre></div>
@@ -2275,21 +2275,18 @@
22752275
<li><strong>Shape is a tuple of dimension sizes.</strong></li>
22762276
<li><strong>Axis is an index of the dimension that gets collapsed. Leftmost dimension has index 0.</strong></li>
22772277
</ul>
2278-
<div><h3 id="indexing">Indexing</h3><pre><code class="python language-python hljs">&lt;el&gt; = &lt;2d_array&gt;[<span class="hljs-number">0</span>, <span class="hljs-number">0</span>] <span class="hljs-comment"># First element.</span>
2279-
&lt;1d_view&gt; = &lt;2d_array&gt;[<span class="hljs-number">0</span>] <span class="hljs-comment"># First row.</span>
2280-
&lt;1d_view&gt; = &lt;2d_array&gt;[:, <span class="hljs-number">0</span>] <span class="hljs-comment"># First column. Also [..., 0].</span>
2281-
&lt;3d_view&gt; = &lt;2d_array&gt;[<span class="hljs-keyword">None</span>, :, :] <span class="hljs-comment"># Expanded by dimension of size 1.</span>
2278+
<div><h3 id="indexing">Indexing</h3><pre><code class="bash language-bash hljs">&lt;el&gt; = &lt;2d_array&gt;[row_index, column_index]
2279+
&lt;1d_view&gt; = &lt;2d_array&gt;[row_index]
2280+
&lt;1d_view&gt; = &lt;2d_array&gt;[:, column_index]
22822281
</code></pre></div>
22832282

2284-
<pre><code class="python language-python hljs">&lt;1d_array&gt; = &lt;2d_array&gt;[&lt;1d_row_indexes&gt;, &lt;1d_column_indexes&gt;]
2285-
&lt;2d_array&gt; = &lt;2d_array&gt;[&lt;2d_row_indexes&gt;, &lt;2d_column_indexes&gt;]
2283+
<pre><code class="bash language-bash hljs">&lt;1d_array&gt; = &lt;2d_array&gt;[row_indexes, column_indexes]
2284+
&lt;2d_array&gt; = &lt;2d_array&gt;[row_indexes]
2285+
&lt;2d_array&gt; = &lt;2d_array&gt;[:, column_indexes]
22862286
</code></pre>
2287-
<pre><code class="python language-python hljs">&lt;2d_bools&gt; = &lt;2d_array&gt; &gt; <span class="hljs-number">0</span>
2287+
<pre><code class="bash language-bash hljs">&lt;2d_bools&gt; = &lt;2d_array&gt; &gt;&lt;== &lt;el&gt;
22882288
&lt;1d_array&gt; = &lt;2d_array&gt;[&lt;2d_bools&gt;]
22892289
</code></pre>
2290-
<ul>
2291-
<li><strong>If row and column indexes differ in shape, they are combined with broadcasting.</strong></li>
2292-
</ul>
22932290
<div><h3 id="broadcasting">Broadcasting</h3><p><strong>Broadcasting is a set of rules by which NumPy functions operate on arrays of different sizes and/or dimensions.</strong></p><pre><code class="python language-python hljs">left = [[<span class="hljs-number">0.1</span>], [<span class="hljs-number">0.6</span>], [<span class="hljs-number">0.8</span>]] <span class="hljs-comment"># Shape: (3, 1)</span>
22942291
right = [ <span class="hljs-number">0.1</span> , <span class="hljs-number">0.6</span> , <span class="hljs-number">0.8</span> ] <span class="hljs-comment"># Shape: (3)</span>
22952292
</code></pre></div>
@@ -2492,8 +2489,8 @@
24922489
</code></pre></div>
24932490

24942491
<div><h2 id="synthesizer"><a href="#synthesizer" name="synthesizer">#</a>Synthesizer</h2><div><h4 id="playspopcornbygershonkingsley">Plays Popcorn by Gershon Kingsley:</h4><pre><code class="python language-python hljs"><span class="hljs-comment"># $ pip3 install simpleaudio</span>
2495-
<span class="hljs-keyword">import</span> simpleaudio, math, struct
2496-
<span class="hljs-keyword">from</span> itertools <span class="hljs-keyword">import</span> chain, repeat
2492+
<span class="hljs-keyword">import</span> math, struct, simpleaudio
2493+
<span class="hljs-keyword">from</span> itertools <span class="hljs-keyword">import</span> repeat, chain
24972494
F = <span class="hljs-number">44100</span>
24982495
P1 = <span class="hljs-string">'71♩,69♪,,71♩,66♪,,62♩,66♪,,59♩,,,'</span>
24992496
P2 = <span class="hljs-string">'71♩,73♪,,74♩,73♪,,74♪,,71♪,,73♩,71♪,,73♪,,69♪,,71♩,69♪,,71♪,,67♪,,71♩,,,'</span>

0 commit comments

Comments
 (0)