Skip to content

Commit 95b16dd

Browse files
committed
Deploying to gh-pages from @ ad0bdd5 🚀
0 parents  commit 95b16dd

File tree

8 files changed

+438
-0
lines changed

8 files changed

+438
-0
lines changed

.nojekyll

Whitespace-only changes.

DEPENDENCIES.html

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
<!doctype html><meta content="width=device-width,initial-scale=1"name=viewport><title>Programming with Python: Dependencies</title><style>@media only screen and (orientation:portrait){body{padding:max(.2em,2px)}div.document{max-width:min(98%,98vw)}div.content{max-width:min(98%,97vw);margin:max(1px,.1em);padding:.5em}div.toc{margin:max(1em,5px)}}@media only screen and (orientation:landscape){body{padding:max(.2em,2px) max(2em,40px,5%);font-size:105%}div.document{max-width:min(27cm,78em,98%);margin:0 auto}div.content{margin:max(1em,5px);padding:.5em 1em}div.toc{margin:max(1em,5px) 2em 2em max(1em,5px)}}body{text-align:center;color:#000;background-color:#ebf5fb;max-width:99vw;font-family:Lucida Grande,Lucida Sans Unicode,Geneva,Verdana,sans-serif;line-height:150%}div.document{text-align:center}div.content{float:left;text-align:left;background-color:#fff;border:1px solid #ccc}div.toc{float:left;text-align:left;background-color:#ebf5fb;border:1px solid #ccc;outline:max(4px,.2em) solid #fff;max-width:max(25%,min(8cm,22em));padding:.6em}code{white-space:nowrap;color:#333;background-color:#f2f2f2;border-bottom:1px solid #ddd;border-radius:3px;max-width:99%}ul.toc{max-width:99%;margin:min(2px,.2em);padding:0;list-style-position:inside}li.toc{margin:min(2px,.2em);padding-left:1em}p{margin:.8em 0 .5em}a{color:#369;text-decoration:none}a:hover{color:#369;text-decoration:underline}a:visited{color:#551a8b}h1,h2,h3{color:#369}h1{margin:0;padding:.7em 0 .3em;font-size:1.7em}h2{border-bottom:1px solid #369;margin:1.3em 0 .2em;padding-bottom:.5em;font-size:1.35em}h3{border-bottom:1px solid #ccc;margin:1em 0 -.3em;padding-bottom:.3em;font-size:1.2em}div.body h1 a,div.body h2 a,div.body h3 a,div.body h4 a,div.body h5 a,div.body h6 a{color:#000!important}h1 a.anchor,h2 a.anchor,h3 a.anchor,h4 a.anchor,h5 a.anchor,h6 a.anchor{margin:0 0 0 .3em;padding:0 .2em;display:none;color:#aaa!important}h1:hover a.anchor,h2:hover a.anchor,h3:hover a.anchor,h4:hover a.anchor,h5:hover a.anchor,h6:hover a.anchor{display:inline}h1 a.anchor:hover,h2 a.anchor:hover,h3 a.anchor:hover,h4 a.anchor:hover,h5 a.anchor:hover,h6 a.anchor:hover{color:#777;background-color:#eee}div.date{text-align:right;border-top:1px solid #369;max-width:99%;margin-top:1cm;padding-top:.2em;padding-right:.6em;font-size:85%}pre{letter-spacing:.015em;border-left:5px solid #ccc;border-right:5px solid #ccc;max-width:99%;padding:.5em;font-family:Consolas,Deja Vu Sans Mono,Bitstream Vera Sans Mono,monospace;font-size:.95em;line-height:120%;overflow:scroll;background-color:#0000!important}</style><body><div class=document><div class=content><div>${toc}<h2>Programming with Python Dependencies</h2><pre>
2+
Alpine Linux 3.22.1
3+
Linux 6.14.0-1012-azure x86_64
4+
5+
python: 3.12.12
6+
texgit_py: 0.9.10
7+
texgit_tex: 0.9.7
8+
pycommons: 0.8.69
9+
pdflatex: pdfTeX 3.141592653-2.6-1.40.28 (TeX Live 2025)
10+
biber: 2.21
11+
makeglossaries: 4.7 (2025-05-14)
12+
ghostscript: 10.05.1 (2025-04-29)
13+
14+
date: 2025-10-20 05:26:51 +0000
15+
</pre><p>python3 -m pip freeze<pre>
16+
astroid==4.0.1
17+
dill==0.4.0
18+
iniconfig==2.3.0
19+
isort==7.0.0
20+
Markdown==3.9
21+
mccabe==0.7.0
22+
minify_html==0.16.4
23+
mypy==1.18.2
24+
mypy_extensions==1.1.0
25+
packaging==25.0
26+
pathspec==0.12.1
27+
platformdirs==4.5.0
28+
pluggy==1.6.0
29+
psutil==7.1.1
30+
pycommons==0.8.69
31+
Pygments==2.19.2
32+
pylint==4.0.1
33+
pytest==8.4.2
34+
pytest-timeout==2.4.0
35+
ruff==0.14.1
36+
strip-hints==0.1.13
37+
texgit==0.9.10
38+
tomlkit==0.13.3
39+
typing_extensions==4.15.0
40+
wheel==0.45.1
41+
yapf==0.43.0
42+
</pre></div><div class=date>built on: 2025-10-20 05:26:51 +0000</div></div></div>

DEPENDENCIES.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
## Programming with Python Dependencies
2+
3+
```
4+
Alpine Linux 3.22.1
5+
Linux 6.14.0-1012-azure x86_64
6+
7+
python: 3.12.12
8+
texgit_py: 0.9.10
9+
texgit_tex: 0.9.7
10+
pycommons: 0.8.69
11+
pdflatex: pdfTeX 3.141592653-2.6-1.40.28 (TeX Live 2025)
12+
biber: 2.21
13+
makeglossaries: 4.7 (2025-05-14)
14+
ghostscript: 10.05.1 (2025-04-29)
15+
16+
date: 2025-10-20 05:26:51 +0000
17+
```
18+
19+
python3 -m pip freeze
20+
21+
```
22+
astroid==4.0.1
23+
dill==0.4.0
24+
iniconfig==2.3.0
25+
isort==7.0.0
26+
Markdown==3.9
27+
mccabe==0.7.0
28+
minify_html==0.16.4
29+
mypy==1.18.2
30+
mypy_extensions==1.1.0
31+
packaging==25.0
32+
pathspec==0.12.1
33+
platformdirs==4.5.0
34+
pluggy==1.6.0
35+
psutil==7.1.1
36+
pycommons==0.8.69
37+
Pygments==2.19.2
38+
pylint==4.0.1
39+
pytest==8.4.2
40+
pytest-timeout==2.4.0
41+
ruff==0.14.1
42+
strip-hints==0.1.13
43+
texgit==0.9.10
44+
tomlkit==0.13.3
45+
typing_extensions==4.15.0
46+
wheel==0.45.1
47+
yapf==0.43.0
48+
```

LICENSE.html

Lines changed: 18 additions & 0 deletions
Large diffs are not rendered by default.

LICENSE.md

Lines changed: 195 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 134 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,134 @@
1+
# Programming with Python
2+
3+
## 1. Introduction
4+
5+
*"Programming with Python"* is both a book and a course held at [Hefei University](http://www.hfuu.edu.cn/english/) ([合肥大学](http://www.hfuu.edu.cn/)).
6+
We here provide all the resources of this course.
7+
8+
The goal of the course and book is to teach undergraduate and graduate students how to program with the Python programming language.
9+
The resources may also be suitable to high school students or whoever else may be interested in the topic.
10+
Our aim is to strike a good balance between theory and practice, leaning more to the practice side.
11+
In particular, we try to teach programming together with some software engineering concepts.
12+
It is the firm opinion of the author that these two cannot be separated.
13+
Teaching programming alone without introducing tools such as static code analysis, unit tests, and enforcing principles such as code style and proper commenting will create bad programmers.
14+
So we discuss these aspects while working our way through the principles of programming.
15+
16+
17+
## 2. Resources
18+
The website with up-to-date information about the course is <https://thomasweise.github.io/programmingWithPython>.
19+
20+
### 2.1. The Book
21+
The book itself can be downloaded as pdf at <https://thomasweise.github.io/programmingWithPython/programmingWithPython.pdf>.
22+
23+
### 2.2. Die Slides in Deutsch &mdash; The Slides in German Language
24+
Die Slides zum Kurs in deutscher Sprache können unter <https://thomasweise.github.io/programmingWithPythonSlidesDE> gefunden werden und sind hier aufgelistet:
25+
26+
1. [Organisation](https://thomasweise.github.io/programmingWithPythonSlidesDE/01_organisation.pdf)
27+
2. [Einleitung](https://thomasweise.github.io/programmingWithPythonSlidesDE/02_einleitung.pdf)
28+
3. [Python Installieren](https://thomasweise.github.io/programmingWithPythonSlidesDE/03_python_installieren.pdf)
29+
4. [PyCharm Installieren](https://thomasweise.github.io/programmingWithPythonSlidesDE/04_pycharm_installieren.pdf)
30+
5. [Programme Erstellen und Ausführen](https://thomasweise.github.io/programmingWithPythonSlidesDE/05_programme_erstellen_und_ausführen.pdf)
31+
6. [Beispiele Herunterladen](https://thomasweise.github.io/programmingWithPythonSlidesDE/06_beispiele_herunterladen.pdf)
32+
7. [Der Datentyp `int`](https://thomasweise.github.io/programmingWithPythonSlidesDE/07_int.pdf)
33+
8. [Der Datentyp `float`](https://thomasweise.github.io/programmingWithPythonSlidesDE/08_float.pdf)
34+
9. [Zwischenspiel: Python Dokumentation und Informationsquellen](https://thomasweise.github.io/programmingWithPythonSlidesDE/09_dokumentation.pdf)
35+
10. [Der Datentyp `bool`](https://thomasweise.github.io/programmingWithPythonSlidesDE/10_bool.pdf)
36+
11. [Der Datentyp `str`](https://thomasweise.github.io/programmingWithPythonSlidesDE/11_str.pdf)
37+
12. [`None`](https://thomasweise.github.io/programmingWithPythonSlidesDE/12_none.pdf)
38+
13. [Variablen: Wertzuweisung](https://thomasweise.github.io/programmingWithPythonSlidesDE/13_variablen_wertzuweisung.pdf)
39+
14. [Zwischenspiel: Fehler im Kode mit Exceptions und IDE finden](https://thomasweise.github.io/programmingWithPythonSlidesDE/14_fehler_im_kode_mit_exceptions_und_ide_finden.pdf)
40+
15. [Variablen: Typen und Type Hints](https://thomasweise.github.io/programmingWithPythonSlidesDE/15_variablen_typen_und_type_hints.pdf)
41+
16. [Gleichheit und Identität](https://thomasweise.github.io/programmingWithPythonSlidesDE/16_gleichheit_und_identität.pdf)
42+
17. [Listen](https://thomasweise.github.io/programmingWithPythonSlidesDE/17_listen.pdf)
43+
18. [Zwischenspiel: Der Linter Ruff](https://thomasweise.github.io/programmingWithPythonSlidesDE/18_ruff.pdf)
44+
19. [Tupel](https://thomasweise.github.io/programmingWithPythonSlidesDE/19_tupel.pdf)
45+
20. [Mengen](https://thomasweise.github.io/programmingWithPythonSlidesDE/20_mengen.pdf)
46+
21. [Dictionaries bzw. Hash Maps](https://thomasweise.github.io/programmingWithPythonSlidesDE/21_dictionaries.pdf)
47+
22. [Alternativen mit `if`](https://thomasweise.github.io/programmingWithPythonSlidesDE/22_alternativen_mit_if.pdf)
48+
23. [Schleifen mit `for`](https://thomasweise.github.io/programmingWithPythonSlidesDE/23_schleifen_mit_for.pdf)
49+
24. [`enumerate` und Zwischenspiel: Pylint](https://thomasweise.github.io/programmingWithPythonSlidesDE/24_enumerate_und_pylint.pdf)
50+
25. [Schleifen mit `while`](https://thomasweise.github.io/programmingWithPythonSlidesDE/25_schleifen_mit_while.pdf)
51+
26. [Funktionen definieren und aufrufen](https://thomasweise.github.io/programmingWithPythonSlidesDE/26_funktionen_definieren_und_aufrufen.pdf)
52+
27. [Funktionen in Modulen](https://thomasweise.github.io/programmingWithPythonSlidesDE/27_funktionen_in_modulen.pdf)
53+
28. [Zwischenspiel: Unit Tests](https://thomasweise.github.io/programmingWithPythonSlidesDE/28_unit_tests.pdf)
54+
29. [Funktionsargumente](https://thomasweise.github.io/programmingWithPythonSlidesDE/29_funktionsargumente.pdf)
55+
30. [Funktionen als Parameter, `Callable`s und `lambda`s](https://thomasweise.github.io/programmingWithPythonSlidesDE/30_callables_und_lambdas.pdf)
56+
31. [Ausnahmen auslösen](https://thomasweise.github.io/programmingWithPythonSlidesDE/31_ausnahmen_auslösen.pdf)
57+
32. [Ausnahmen verarbeiten](https://thomasweise.github.io/programmingWithPythonSlidesDE/32_ausnahmen_verarbeiten.pdf)
58+
33. [Zwischenspiel: Testen auf Ausnahmen](https://thomasweise.github.io/programmingWithPythonSlidesDE/33_testen_auf_ausnahmen.pdf)
59+
34. [Iteration](https://thomasweise.github.io/programmingWithPythonSlidesDE/34_iteration.pdf)
60+
35. [List Comprehension](https://thomasweise.github.io/programmingWithPythonSlidesDE/35_list_comprehension.pdf)
61+
36. [Zwischenspiel: Doctests](https://thomasweise.github.io/programmingWithPythonSlidesDE/36_doctests.pdf)
62+
37. [Set und Dictionary Comprehension](https://thomasweise.github.io/programmingWithPythonSlidesDE/37_set_und_dictionary_comprehension.pdf)
63+
38. [Generator-Ausdrücke](https://thomasweise.github.io/programmingWithPythonSlidesDE/38_generator_ausdrücke.pdf)
64+
39. [Generator-Funktionen](https://thomasweise.github.io/programmingWithPythonSlidesDE/39_generator_funktionen.pdf)
65+
40. [Operationen für Iteratoren](https://thomasweise.github.io/programmingWithPythonSlidesDE2/40_operationen_für_iteratoren.pdf)
66+
41. [Klassen: Grundlagen](https://thomasweise.github.io/programmingWithPythonSlidesDE2/41_klassen_grundlagen.pdf)
67+
42. [Klassen: Kapselung](https://thomasweise.github.io/programmingWithPythonSlidesDE2/42_klassen_kapselung.pdf)
68+
43. [Klassen: Vererbung](https://thomasweise.github.io/programmingWithPythonSlidesDE2/43_klassen_vererbung.pdf)
69+
44. [Klassen/Dunder: `__str__`, `__repr__`, und `__eq__`](https://thomasweise.github.io/programmingWithPythonSlidesDE2/44_klassen_dunder_str_rep_eq.pdf)
70+
45. [Klassen/Dunder: `__hash__`](https://thomasweise.github.io/programmingWithPythonSlidesDE2/45_klassen_dunder_hash.pdf)
71+
46. [Klassen/Dunder: Arithmetische Operatoren und Vergleiche](https://thomasweise.github.io/programmingWithPythonSlidesDE2/46_klassen_dunder_math.pdf)
72+
47. [Zwischenspiel: Debugger](https://thomasweise.github.io/programmingWithPythonSlidesDE2/47_debugger.pdf)
73+
74+
75+
### 2.3. The Slides in English
76+
The slides for the course are available at <https://thomasweise.github.io/programmingWithPythonSlides> and also listed below.
77+
Since the course is taught in German language at present, these slides will remain incomplete indefinitely.
78+
79+
1. [Introduction](https://thomasweise.github.io/programmingWithPythonSlides/01_introduction.pdf)
80+
2. [Getting Started](https://thomasweise.github.io/programmingWithPythonSlides/02_getting_started.pdf)
81+
82+
### 2.4. The Example Python Programs
83+
Our course offers a lot of examples.
84+
You can find all of them in the repository <https://github.com/thomasWeise/programmingWithPythonCode>.
85+
86+
87+
### 2.5. LaTeX Sources, Graphics, Bibliography, etc.
88+
Both the book and the slides are written in LaTeX.
89+
You can find their sources in <https://github.com/thomasWeise/programmingWithPython> and <https://github.com/thomasWeise/programmingWithPythonSlides>, respectively.
90+
You may use these files under the licensing terms provided below.
91+
92+
93+
## 3. License
94+
This repository contains two types of material:
95+
Materials that I (Thomas Weise) have created by myself and such that have been created by others.
96+
97+
The vast majority of the material is teaching material created by me (Thomas Weise).
98+
This and only this material is released under the Attribution-NonCommercial-ShareAlike 4.0 International license (CC&nbsp;BY&#8209;NC&#8209;SA&nbsp;4.0), see [http://creativecommons.org/licenses/by-nc-sa/4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) for a summary.
99+
100+
However, the repository also includes some images and figures created by others, which are marked explicitly and licensed under their authors' terms.
101+
For example, all logos and trademarks are under the copyright of their respective owners.
102+
The list of files not under the CC&nbsp;BY&#8209;NC&#8209;SA&nbsp;4.0 license but under their individual owners' copyrights includes, but is not limited to:
103+
104+
+ the [Python](https://www.python.org) Logo, e.g.,
105+
- text/main/introduction/pythonLogo.pdf
106+
- text/main/introduction/pythonLogo.svg
107+
+ all screenshots from websites
108+
+ The illustration of LIU Hui (刘徽) in file "text/main/basics/variables/assignment/liu_hui.jpg" is from Wenqi Ying (应雯棋), editor. Commemoration of Ancient Chinese Mathematical Master Liu Hui for his Timeless Influence on Mathematics and Civilizational Exchange. [Issue 48 of CAST Newsletter](https://english.cast.org.cn/cms_files/filemanager/1941250207/attach/202412/8f23655a82364d19ad7874eb37b23035.pdf). China, Beijing (中国北京市): 中国科学技术协会 (China Association for Science and Technology, CAST), 2024. Permission was granted to include it in this material, but the copyright remains with CAST.
109+
+ The illustration of Hero(n) of Alexandria in file "text/main/controlFlow/loops/heronOfAlexandria.jpg" is taken from the article "[The Ancient Greek Who Invented the World's First Steam Turbine](https://greekreporter.com/2023/12/13/ancient-greek-world-first-steam-turbine)", where its caption states *Heron of Alexandria. Codex of Saint Gregory Nazianzenos. Greek manuscript of the ninth century. Public Domain*.
110+
+ The illustration of Euclid of Alexandria in "text/main/controlFlow/functions/euclidOfAlexandria" [attributed](https://www.antike-griechische.de/Euklid.pdf) to the painter Charles Paul Landon (1760-1826). Source:~[Vikidia](https://fr.vikidia.org/wiki/Cat%C3%A9gorie:Image_Euclide), where it is noted as *domaine public,* i.e., as in the Public Domain.
111+
+ The illustration of Leonardo Pisano / Fibonnaci in file "text/main/controlFlow/iteration/fibonacci.jpg" shows a Sculpture by Bertel Thorvaldsen, 1834/1838 and is sourced from the Thorvaldsens Museum exhibit~[A187](https://kataloget.thorvaldsensmuseum.dk/A187) photographed by Jakob Faurvig, and is published under the Creative Commons Zero&nbsp;([CC0](https://creativecommons.org/publicdomain/zero/1.0)) license.
112+
113+
You can download its newest version of the course material from <https://thomasweise.github.io/programmingWithPython>.
114+
This version may change since this course and book both are work in progress.
115+
You can cite this book as follows:
116+
117+
<pre>@book{programmingWithPython,<br/>&nbsp;author&nbsp;=&nbsp;{Thomas&nbsp;Weise},<br/>&nbsp;title&nbsp;=&nbsp;{Programming&nbsp;with&nbsp;Python},<br/>&nbsp;year&nbsp;=&nbsp;{2024--2025},<br/>&nbsp;publisher&nbsp;=&nbsp;{Institute&nbsp;of&nbsp;Applied&nbsp;Optimization,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.hfuu.edu.cn/aibd">School&nbsp;of&nbsp;Artificial&nbsp;Intelligence&nbsp;and&nbsp;Big&nbsp;Data</a>,<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.hfuu.edu.cn/">Hefei&nbsp;University</a>},<br/>&nbsp;address&nbsp;=&nbsp;{Hefei,&nbsp;Anhui,&nbsp;China},<br/>&nbsp;url&nbsp;=&nbsp;{<a href="https://thomasweise.github.io/programmingWithPython">https://thomasweise.github.io/programmingWithPython</a>}<br/>}</pre>
118+
119+
**If you have any comments or suggestions regarding the book, or if you spotted an error or typo, please feel free to submit an [issue here](https://github.com/thomasWeise/programmingWithPython/issues).**
120+
Your feedback would help us to improve the book.
121+
122+
We statically include the [pdfsizeopt](https://github.com/pts/pdfsizeopt) tool in the build process of our book via the [bookbase repository](https://github.com/thomasWeise/bookbase) and use it during the book compiling and building process to compress the book pdf file.
123+
This tool is excluded from the license mentioned above.
124+
It is under the GNU GENERAL PUBLIC LICENSE Version 2, June 1991 and the copyright belongs to its authors.
125+
126+
127+
## 4. Contact
128+
If you have any questions or suggestions, please contact
129+
Prof. Dr. Thomas Weise (汤卫思教授)
130+
at the Institute of Applied Optimization (应用优化研究所, IAO)
131+
of the School of Artificial Intelligence and Big Data ([人工智能与大数据学院](http://www.hfuu.edu.cn/aibd))
132+
of [Hefei University](http://www.hfuu.edu.cn/english/) ([合肥大学](http://www.hfuu.edu.cn/)),
133+
in Hefei, Anhui, China (中国安徽省合肥市)
134+
via email to [tweise@hfuu.edu.cn](mailto:tweise@hfuu.edu.cn) with CC to [tweise@ustc.edu.cn](mailto:tweise@ustc.edu.cn).

index.html

Lines changed: 1 addition & 0 deletions
Large diffs are not rendered by default.

programmingWithPython.pdf

8.55 MB
Binary file not shown.

0 commit comments

Comments
 (0)