introducing python

kirby urner <[email protected]> Thu, 18 Apr 2024 09:47:42 -0700
Newsgroups gmane.comp.python.education
Message-ID <CAPJgG3QEpw4=SEgwtakqKMy0As++5Q2bMEAK1Zj9Cy4dbdf03Q@mail.gmail.com>
--===============8435085550747366519==
Content-Type: multipart/alternative; boundary="00000000000091212d061661bb37"

--00000000000091212d061661bb37
Content-Type: text/plain; charset="UTF-8"

When I start introducing Python I use this chart [1]:

Five Dimensions of Python:


   - Level 0: core syntax with keywords & punctuation, indentation (import,
   if...)
   - Level 1: a large set of built-ins (e.g. print)
   - Level 2: special names with the double underlines
   - Level 3: Standard Library (e.g. math)
   - Level 4: 3rd Party Ecosystem (e.g. numpy, pandas, matplotlib)

Here's a Level 2 topic I've been recently working on:

https://nbviewer.org/github/4dsolutions/m4w/blob/main/gadzooks.ipynb

I know, we don't all love those __ribs__ (special names), however that's a
benefit of Free Open Source: you can fork and adapt, take the best ideas,
and leave the rest.

This one is about how implementing __add__ gets you default behavior
for __iadd__ with no extra work, with the option to go on to add your
own __iadd__.

Kirby


[1] example of me doing that:

https://github.com/4dsolutions/clarusway_data_analysis/blob/main/python_warm_up/warmup_python_intro.ipynb

coming from:

https://nbviewer.org/github/4dsolutions/clarusway_data_analysis/blob/main/DAwPy_S1_%28Numpy_Arrays%29/daily_schedule.ipynb

(Exhibit: some Python teaching in the wild....)

--00000000000091212d061661bb37
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_default" style=3D"font-size:small"><fo=
nt face=3D"verdana, sans-serif"><br></font></div><div class=3D"gmail_defaul=
t" style=3D""><font face=3D"verdana, sans-serif" style=3D"">When I start in=
troducing Python I use this chart [1]:</font></div><div class=3D"gmail_defa=
ult" style=3D""><font face=3D"verdana, sans-serif"><br></font></div><div cl=
ass=3D"gmail_default" style=3D""><font face=3D"verdana, sans-serif">Five Di=
mensions of Python:</font></div><div class=3D"gmail_default" style=3D""><fo=
nt face=3D"verdana, sans-serif"><br></font></div><div class=3D"gmail_defaul=
t" style=3D""><ul style=3D"list-style-position:initial;margin-bottom:1em;pa=
dding-left:2em;color:rgba(0,0,0,0.87)"><li><font face=3D"verdana, sans-seri=
f">Level 0: core syntax with keywords &amp; punctuation, indentation (impor=
t, if...)</font></li><li><font face=3D"verdana, sans-serif">Level 1: a larg=
e set of built-ins (e.g. print)</font></li><li><font face=3D"verdana, sans-=
serif">Level 2: special names with the double underlines</font></li><li><fo=
nt face=3D"verdana, sans-serif">Level 3: Standard Library (e.g. math)</font=
></li><li><font face=3D"verdana, sans-serif">Level 4: 3rd Party Ecosystem (=
e.g. numpy, pandas, matplotlib)</font></li></ul><div><font color=3D"#000000=
" face=3D"verdana, sans-serif">Here&#39;s a Level 2 topic I&#39;ve been rec=
ently working on:</font></div><div><font color=3D"#000000" face=3D"verdana,=
 sans-serif"><br></font></div><div><font face=3D"verdana, sans-serif"><a hr=
ef=3D"https://nbviewer.org/github/4dsolutions/m4w/blob/main/gadzooks.ipynb"=
>https://nbviewer.org/github/4dsolutions/m4w/blob/main/gadzooks.ipynb</a><f=
ont color=3D"#000000"><br></font></font></div><div><font face=3D"verdana, s=
ans-serif"><br></font></div><div><font face=3D"verdana, sans-serif">I know,=
 we don&#39;t all love those __ribs__ (special names), however that&#39;s a=
=C2=A0</font></div><div><font face=3D"verdana, sans-serif">benefit of Free =
Open Source: you can fork and adapt, take the best ideas,=C2=A0</font></div=
><div><font face=3D"verdana, sans-serif">and leave the rest.</font></div><d=
iv><font face=3D"verdana, sans-serif"><br></font></div><div><font face=3D"v=
erdana, sans-serif">This one is about how implementing __add__ gets you def=
ault behavior=C2=A0</font></div><div><font face=3D"verdana, sans-serif">for=
 __iadd__ with no extra work, with the option to go on to add your</font></=
div><div><font face=3D"verdana, sans-serif">own __iadd__.</font></div><div>=
<font color=3D"#000000" face=3D"verdana, sans-serif"><br></font></div><div>=
<font color=3D"#000000" face=3D"verdana, sans-serif">Kirby</font></div><div=
><font color=3D"#000000" face=3D"verdana, sans-serif"><br></font></div><div=
><font color=3D"#000000" face=3D"verdana, sans-serif"><br></font></div><div=
><font color=3D"#000000" face=3D"verdana, sans-serif">[1] example of me doi=
ng that:</font></div><div><font color=3D"#000000" face=3D"verdana, sans-ser=
if"><br></font></div><div><font face=3D"verdana, sans-serif"><a href=3D"htt=
ps://github.com/4dsolutions/clarusway_data_analysis/blob/main/python_warm_u=
p/warmup_python_intro.ipynb">https://github.com/4dsolutions/clarusway_data_=
analysis/blob/main/python_warm_up/warmup_python_intro.ipynb</a><font color=
=3D"#000000"><br></font></font></div><div><font face=3D"verdana, sans-serif=
"><br></font></div><div><font face=3D"verdana, sans-serif">coming from:</fo=
nt></div><div><font face=3D"verdana, sans-serif"><br></font></div><div><fon=
t face=3D"verdana, sans-serif"><a href=3D"https://nbviewer.org/github/4dsol=
utions/clarusway_data_analysis/blob/main/DAwPy_S1_%28Numpy_Arrays%29/daily_=
schedule.ipynb">https://nbviewer.org/github/4dsolutions/clarusway_data_anal=
ysis/blob/main/DAwPy_S1_%28Numpy_Arrays%29/daily_schedule.ipynb</a></font><=
br></div><div><br></div><div><font face=3D"system-ui, -apple-system, blinkm=
acsystemfont, Segoe UI, helvetica, arial, sans-serif, Apple Color Emoji, Se=
goe UI Emoji, Segoe UI Symbol" color=3D"#000000"><span style=3D"font-size:1=
4px">(Exhibit: some Python teaching in the wild....)</span></font></div><di=
v><font face=3D"system-ui, -apple-system, blinkmacsystemfont, Segoe UI, hel=
vetica, arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symb=
ol" color=3D"#000000"><span style=3D"font-size:14px"><br></span></font></di=
v><div><font face=3D"system-ui, -apple-system, blinkmacsystemfont, Segoe UI=
, helvetica, arial, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI=
 Symbol" color=3D"#000000"><span style=3D"font-size:14px"><br></span></font=
></div></div></div>

--00000000000091212d061661bb37--

--===============8435085550747366519==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Edu-sig mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/edu-sig.python.org/
Member address: [email protected]

--===============8435085550747366519==--