@ -54,7 +54,7 @@
< body >
< header >
< aside > June 19 , 2022< / aside >
< aside > June 20 , 2022< / aside >
< a href = "https://gto76.github.io" rel = "author" > Jure Šorn< / a >
< / header >
@ -589,15 +589,15 @@ to_exclusive = <range>.stop
< float> = < TD> / < TD> < span class = "hljs-comment" > # How many weeks/years there are in TD. Also //.< / span >
< / code > < / pre > < / div >
< div > < h2 id = "arguments" > < a href = "#arguments" name = "arguments" > #< / a > Arguments< / h2 > < div > < h3 id = "insidefunctioncall" > Inside Function Call< / h3 > < pre > < code class = "python language-python hljs" > < function> (< positional_args> ) < span class = "hljs-comment" > # f(0, 0 )< / span >
< function> (< keyword_args> ) < span class = "hljs-comment" > # f(x=0, y=0 )< / span >
< function> (< positional_args> , < keyword_args> ) < span class = "hljs-comment" > # f(0, y=0 )< / span >
< div > < h2 id = "arguments" > < a href = "#arguments" name = "arguments" > #< / a > Arguments< / h2 > < div > < h3 id = "insidefunctioncall" > Inside Function Call< / h3 > < pre > < code class = "python language-python hljs" > func(< positional_args> ) < span class = "hljs-comment" > # func(1, 2 )< / span >
func(< keyword_args> ) < span class = "hljs-comment" > # func(x=1, y=2 )< / span >
func(< positional_args> , < keyword_args> ) < span class = "hljs-comment" > # func(1, y=2 )< / span >
< / code > < / pre > < / div > < / div >
< div > < h3 id = "insidefunctiondefinition" > Inside Function Definition< / h3 > < pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (< nondefault_args> )< / span > :< / span > < span class = "hljs-comment" > # def f(x, y):< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (< default_args> )< / span > :< / span > < span class = "hljs-comment" > # def f(x=0, y=0):< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (< nondefault_args> , < default_args> )< / span > :< / span > < span class = "hljs-comment" > # def f(x, y=0):< / span >
< div > < h3 id = "insidefunctiondefinition" > Inside Function Definition< / h3 > < pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > func < / span > < span class = "hljs-params" > (< nondefault_args> )< / span > :< / span > ... < span class = "hljs-comment" > # def func (x, y): ... < / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > func < / span > < span class = "hljs-params" > (< default_args> )< / span > :< / span > ... < span class = "hljs-comment" > # def func (x=0, y=0): ... < / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > func < / span > < span class = "hljs-params" > (< nondefault_args> , < default_args> )< / span > :< / span > ... < span class = "hljs-comment" > # def func (x, y=0): ... < / span >
< / code > < / pre > < / div >
< ul >
@ -622,48 +622,48 @@ func(*args, **kwargs)
< pre > < code class = "python language-python hljs" > < span class = "hljs-meta" > > > > < / span > add(< span class = "hljs-number" > 1< / span > , < span class = "hljs-number" > 2< / span > , < span class = "hljs-number" > 3< / span > )
< span class = "hljs-number" > 6< / span >
< / code > < / pre >
< div > < h4 id = "legalargumentcombinations" > Legal argument combinations:< / h4 > < pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*, x, y, z)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, *, y, z)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, y, *, z)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3) | f(1, 2, z=3)< / span >
< div > < h4 id = "legalargumentcombinations" > Legal argument combinations:< / h4 > < pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*, x, y, z)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, *, y, z)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, y, *, z)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3) | f(1, 2, z=3)< / span >
< / code > < / pre > < / div >
< pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args)< / span > :< / span > < span class = "hljs-comment" > # f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, *args)< / span > :< / span > < span class = "hljs-comment" > # f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args, z)< / span > :< / span > < span class = "hljs-comment" > # f(1, 2, z=3)< / span >
< pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args)< / span > :< / span > ... < span class = "hljs-comment" > # f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, *args)< / span > :< / span > ... < span class = "hljs-comment" > # f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args, z)< / span > :< / span > ... < span class = "hljs-comment" > # f(1, 2, z=3)< / span >
< / code > < / pre >
< pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (**kwargs)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, **kwargs)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*, x, **kwargs)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3)< / span >
< pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (**kwargs)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, **kwargs)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*, x, **kwargs)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3)< / span >
< / code > < / pre >
< pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args, **kwargs)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3) | f(1, 2, z=3) | f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, *args, **kwargs)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3) | f(1, 2, z=3) | f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args, y, **kwargs)< / span > :< / span > < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3)< / span >
< pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args, **kwargs)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3) | f(1, 2, z=3) | f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (x, *args, **kwargs)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3) | f(1, 2, z=3) | f(1, 2, 3)< / span >
< span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > f< / span > < span class = "hljs-params" > (*args, y, **kwargs)< / span > :< / span > ... < span class = "hljs-comment" > # f(x=1, y=2, z=3) | f(1, y=2, z=3)< / span >
< / code > < / pre >
< div > < h3 id = "otheruses" > Other Uses< / h3 > < pre > < code class = "python language-python hljs" > < list> = [*< collection> [, ...]]
< set> = {*< collection> [, ...]}
< tuple> = (*< collection> , [...])
< dict> = {**< dict> [, ...]}
< div > < h3 id = "otheruses" > Other Uses< / h3 > < pre > < code class = "python language-python hljs" > < list> = [*< coll.> [, ...]] < span class = "hljs-comment" > # Or: list(< collection> ) [+ ...]< / span >
< tuple> = (*< coll.> , [...]) < span class = "hljs-comment" > # Or: tuple(< collection> ) [+ ...]< / span >
< set> = {*< coll.> [, ...]} < span class = "hljs-comment" > # Or: set(< collection> ) [| ...]< / span >
< dict> = {**< dict> [, ...]} < span class = "hljs-comment" > # Or: dict(**< dict> [, ...])< / span >
< / code > < / pre > < / div >
< pre > < code class = "python language-python hljs" > head, *body, tail = < collection>
< pre > < code class = "python language-python hljs" > head, *body, tail = < coll.> < span class = "hljs-comm ent" > # Also `head, *body = < c oll. > ` and `*body, tail = < coll.> `.< / span >
< / code > < / pre >
< div > < h2 id = "inline" > < a href = "#inline" name = "inline" > #< / a > Inline< / h2 > < div > < h3 id = "lambda" > Lambda< / h3 > < pre > < code class = "python language-python hljs" > < func> = < span class = "hljs-keyword" > lambda< / span > : < return_value>
< func> = < span class = "hljs-keyword" > lambda< / span > < arg_1> , < arg_2> : < return_value>
< div > < h2 id = "inline" > < a href = "#inline" name = "inline" > #< / a > Inline< / h2 > < div > < h3 id = "lambda" > Lambda< / h3 > < pre > < code class = "python language-python hljs" > < func> = < span class = "hljs-keyword" > lambda< / span > : < return_value> < span class = "hljs-comment" > # A single statement function.< / span >
< func> = < span class = "hljs-keyword" > lambda< / span > < arg_1> , < arg_2> : < return_value> < span class = "hljs-comment" > # Also accepts default arguments.< / span >
< / code > < / pre > < / div > < / div >
< div > < h3 id = "comprehensions" > Comprehensions< / h3 > < pre > < code class = "python language-python hljs" > < list> = [i+< span class = "hljs-number" > 1< / span > < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > )] < span class = "hljs-comment" > # [1, 2, ..., 10]< / span >
< set> = { i < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > ) < span class = "hljs-keyword" > if< / span > i > < span class = "hljs-number" > 5< / span > } < span class = "hljs-comment" > # {6, 7, 8, 9} < / span >
< iter> = ( i+< span class = "hljs-number" > 5< / span > < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > )) < span class = "hljs-comment" > # (5, 6, ..., 14) < / span >
< dict> = {i: i*< span class = "hljs-number" > 2< / span > < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > )} < span class = "hljs-comment" > # {0: 0, 1: 2, ..., 9: 18}< / span >
< div > < h3 id = "comprehensions" > Comprehensions< / h3 > < pre > < code class = "python language-python hljs" > < list> = [i+< span class = "hljs-number" > 1< / span > < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > )] < span class = "hljs-comment" > # Or: [1, 2, ..., 10]< / span >
< iter> = ( i < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > ) < span class = "hljs-keyword" > if< / span > i > < span class = "hljs-number" > 5< / span > ) < span class = "hljs-comment" > # Or: iter([6, 7, 8, 9]) < / span >
< set> = { i+< span class = "hljs-number" > 5< / span > < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > )} < span class = "hljs-comment" > # Or: {5, 6, ..., 14} < / span >
< dict> = {i: i*< span class = "hljs-number" > 2< / span > < span class = "hljs-keyword" > for< / span > i < span class = "hljs-keyword" > in< / span > range(< span class = "hljs-number" > 10< / span > )} < span class = "hljs-comment" > # Or: {0: 0, 1: 2, ..., 9: 18}< / span >
< / code > < / pre > < / div >
< pre > < code class = "python language-python hljs" > < span class = "hljs-meta" > > > > < / span > [l+r < span class = "hljs-keyword" > for< / span > l < span class = "hljs-keyword" > in< / span > < span class = "hljs-string" > 'abc'< / span > < span class = "hljs-keyword" > for< / span > r < span class = "hljs-keyword" > in< / span > < span class = "hljs-string" > 'abc'< / span > ]
[< span class = "hljs-string" > 'aa'< / span > , < span class = "hljs-string" > 'ab'< / span > , < span class = "hljs-string" > 'ac'< / span > , ..., < span class = "hljs-string" > 'cc'< / span > ]
< / code > < / pre >
< div > < h3 id = "mapfilterreduce" > Map, Filter, Reduce< / h3 > < pre > < code class = "python language-python hljs" > < iter> = map(< span class = "hljs-keyword" > lambda< / span > x: x + < span class = "hljs-number" > 1< / span > , range(< span class = "hljs-number" > 10< / span > )) < span class = "hljs-comment" > # (1, 2, ..., 10)< / span >
< iter> = filter(< span class = "hljs-keyword" > lambda< / span > x: x > < span class = "hljs-number" > 5< / span > , range(< span class = "hljs-number" > 10< / span > )) < span class = "hljs-comment" > # (6, 7, 8, 9)< / span >
< obj> = reduce(< span class = "hljs-keyword" > lambda< / span > out, x: out + x, range(< span class = "hljs-number" > 10< / span > )) < span class = "hljs-comment" > # 45< / span >
< div > < h3 id = "mapfilterreduce" > Map, Filter, Reduce< / h3 > < pre > < code class = "python language-python hljs" > < iter> = map(< span class = "hljs-keyword" > lambda< / span > x: x + < span class = "hljs-number" > 1< / span > , range(< span class = "hljs-number" > 10< / span > )) < span class = "hljs-comment" > # Or: iter ([ 1, 2, ..., 10] )< / span >
< iter> = filter(< span class = "hljs-keyword" > lambda< / span > x: x > < span class = "hljs-number" > 5< / span > , range(< span class = "hljs-number" > 10< / span > )) < span class = "hljs-comment" > # Or: iter ([ 6, 7, 8, 9] )< / span >
< obj> = reduce(< span class = "hljs-keyword" > lambda< / span > out, x: out + x, range(< span class = "hljs-number" > 10< / span > )) < span class = "hljs-comment" > # Or: 45< / span >
< / code > < / pre > < / div >
< ul >
@ -903,7 +903,7 @@ Z = dataclasses.make_dataclass(<span class="hljs-string">'Z'</span>, [<span clas
< class> = make_dataclass(< span class = "hljs-string" > '< class_name> '< / span > , < coll_of_tuples> )
< tuple> = (< span class = "hljs-string" > '< attr_name> '< / span > , < type> [, < default_value> ])< / code > < / pre > < / div >
< div > < h4 id = "restoftypeannotationscpythoninterpreterignoresthemall" > Rest of type annotations (CPython interpreter ignores them all):< / h4 > < pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > func< / span > < span class = "hljs-params" > (< arg_name> : < type> [= < obj> ])< / span > -> < type> :< / span >
< div > < h4 id = "restoftypeannotationscpythoninterpreterignoresthemall" > Rest of type annotations (CPython interpreter ignores them all):< / h4 > < pre > < code class = "python language-python hljs" > < span class = "hljs-function" > < span class = "hljs-keyword" > def< / span > < span class = "hljs-title" > func< / span > < span class = "hljs-params" > (< arg_name> : < type> [= < obj> ])< / span > -> < type> :< / span > ...
< var_name> : typing.List/Set/Iterable/Sequence/Optional[< type> ]
< var_name> : typing.Dict/Tuple/Union[< type> , ...]
< / code > < / pre > < / div >
@ -2370,7 +2370,8 @@ samples_f = (add_noise(f) <span class="hljs-keyword">for</span> f <span class="h
write_to_wav_file(< span class = "hljs-string" > 'test.wav'< / span > , samples_f)
< / code > < / pre > < / div >
< div > < h4 id = "playsawavfile" > Plays a WAV file:< / h4 > < pre > < code class = "python language-python hljs" > < span class = "hljs-comment" > # $ pip3 install simpleaudio< / span >
< div > < h4 id = "playsawavfile" > Plays a WAV file:< / h4 > < pre > < code class = "python language-python hljs" > < span class = "hljs-comment" > # $ sudo apt install libasound2-dev< / span >
< span class = "hljs-comment" > # $ pip3 install simpleaudio< / span >
< span class = "hljs-keyword" > from< / span > simpleaudio < span class = "hljs-keyword" > import< / span > play_buffer
< span class = "hljs-keyword" > with< / span > wave.open(< span class = "hljs-string" > 'test.wav'< / span > , < span class = "hljs-string" > 'rb'< / span > ) < span class = "hljs-keyword" > as< / span > file:
p = file.getparams()
@ -2378,11 +2379,10 @@ write_to_wav_file(<span class="hljs-string">'test.wav'</span>, samples_f)
play_buffer(frames, p.nchannels, p.sampwidth, p.framerate)
< / code > < / pre > < / div >
< div > < h3 id = "texttospeech" > Text to Speech< / h3 > < pre > < code class = "python language-python hljs" > < span class = "hljs-comment" > # $ pip3 install pyttsx3< / span >
< div > < h3 id = "texttospeech" > Text to Speech< / h3 > < pre > < code class = "python language-python hljs" > < span class = "hljs-comment" > # $ sudo apt install espeak ffmpeg libespeak1< / span >
< span class = "hljs-comment" > # $ pip3 install pyttsx3< / span >
< span class = "hljs-keyword" > import< / span > pyttsx3
engine = pyttsx3.init()
engine.say(< span class = "hljs-string" > 'Sally sells seashells by the seashore.'< / span > )
engine.runAndWait()
pyttsx3.speak(< str> ) < span class = "hljs-comment" > # Reads the string while blocking.< / span >
< / code > < / pre > < / div >
< 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 >
@ -2902,7 +2902,7 @@ $ pyinstaller script.py --add-data '<path>:.' <span class="hljs-comment">
< footer >
< aside > June 19 , 2022< / aside >
< aside > June 20 , 2022< / aside >
< a href = "https://gto76.github.io" rel = "author" > Jure Šorn< / a >
< / footer >