Benutzer-Werkzeuge

Webseiten-Werkzeuge


schule:python

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
schule:python [2021-05-28 13:49] – [Weitere Links] pintmanschule:python [2024-01-28 17:50] (aktuell) – mv pintman
Zeile 1: Zeile 1:
-====== Python ====== +Verschoben nach [[edu:Python]].
-{{:schule:prog:python-logo.png?nolink|}} +
- +
-{{ :schule:prog:crossword-python.jpg?200|}} +
-[[https://www.python.org|Python]] ist eine einfache aber mächtige Programmiersprache, die sich besonders für die Programmierung des [[Raspberry Pi]], für die Systemadministration oder Webanwendungen eignet. In einem [[https://blog.dropbox.com/topics/work-culture/-the-mind-at-work--guido-van-rossum-on-how-python-makes-thinking|Artikel]] schreibt Guido van Rossum (Erfinder der Sprache) über die Entstehungsgeschichte von Python. +
-Aktuell ist die Version 3, obwohl auch die ältere Version 2.7 noch häufig verwendet wird. Wir konzentrieren uns jedoch auf die neuere Version 3.((Die Unterschiede zwischen Version 2 und 3 sind in [[http://inventwithpython.com/appendixa.html|Anhang A]] der Seite "Invent With Python" oder auf der [[https://www.raspberrypi.org/documentation/usage/python/more.md|Seite von Raspberry Pi]] dargestellt.)) +
- +
-===== Installation ===== +
- +
-Python 3 kann [[https://www.python.org/downloads/|von der Webseite heruntergeladen]] und installiert werden.  +
- +
-**Wichtig** Setze bei der Installation unter Windows den Haken bei **"Add Python to Path"**. Damit wird python.exe dem Pfad hinzugefügt, in dem Windows nach ausführbaren Dateien sucht und der Befehl kann in der Eingabeaufforderung direkt eingegeben werden. Wenn du dies vergessen hast, deinstalliere Python und installiere es erneut. +
- +
-Alles hat geklappt, wenn bei den Programmen "IDLE (Python)" auftaucht und in einem Fenster der Eingabeaufforderung "python" ausgeführt werden kann. Sollte letzteres nicht klappen, so kann alternativ der "Python Launcher" mit dem Aufruf von "py" Python starten. +
-===== Erste Schritte ===== +
- +
- +
-**Einführungskurs: [[Erste Schritte in Python]]** +
- +
- +
-===== Hilfe erhalten ===== +
- +
-Wenn du den Kurs von cscircles erfolgreich beendet hast, bietet Jetbrains mit [[https://www.jetbrains.com/pycharm-edu/download|PyCharm-Edu]] einen mächtiger Editor inkl. einem eingebauten Einsteigerkurs an. Probiere ihn aus. +
- +
-Die wichtigsten Konzepte von Python kannst du bei [[http://introtopython.org/|Introduction to Python]] oben im Abschnitt //Python Essentials// nachschlagen. Hier findest du gute Zusammenfassungen mit Beispielen. +
- +
-Python hat ein sehr gutes eingebautes Hilfesystem. Über den Befehl ''help()'' können für viele Module, Klassen und Befehle Informationen abgerufen werden. Probiere es z.B. mit ''help(print)'' einmal aus. Außerhalb von Python leistet ''pydoc3'' Hilfestellung. So liefern die Befehle ''pydoc3 print'' oder unter Windows ''python -m pydoc print'' Hilfe zu der Funktion ''print''. Mit ''pydoc3 -p 8080'' kann sogar ein kleiner Webserver gestartet werden, der das Hilfesystem über den Browser zugänglich macht. +
- +
-==== IRC-Chat und Forum ==== +
- +
-Wer schnell Hilfe von anderen Programmierern gekommen möchte, findet Unterstützung in einem der zahlreichen [[https://www.python.org/community/irc/|IRC-Kanäle]], die über den [[https://webchat.freenode.net/?channels=%23python.de|Webchat von Freenode]] oder einen eigenen Client wie Thunderbird, [[wpde>mIRC]] (Windows) oder [[https://hexchat.github.io/|HexChat]] (Windows, Linux und OS X.) erreichbar sind. Hinter IRC verbirgt sich ein Chatprotokoll. Den Einstieg erleichtert ein [[https://wiki.ubuntuusers.de/IRC/|Artikel von ubuntuusers.de]]. +
- +
-Für Python sind der internationale Kanal ''#python'' oder der deutlich kleinere deutsche Kanal ''#python.de'' interessant. Für den Zugang zu ''#python'' muss der eigene Username zuerst registriert werden. Unter dem obigen Link gibt es eine Anleitung zu dem Prozess. Dann findet man im Kanal ''#python'' über 1000 Entwickler((Quelle: http://irc.netsplit.de/channels/details.php?room=%23python&net=freenode)), die weiterhelfen können. Für den Einstieg reicht aber sicher auch Blick in den deutschen Kanal. +
- +
-Das deutsche [[https://www.python-forum.de/|Python Forum]] beantwortet seit 2002 Fragen rund um Python. +
-==== Bücher ==== +
- +
-Das deutsche Buch [[https://www.dpunkt.de/buecher/12869/9783864904448-python-crashkurs.html|Python Crashkurs]] von Eric Matthes (622 Seiten, 32,90 €, dpunkt.verlag, ISBN Print((ISBN Print: 978-3-86490-444-8\\ ISBN PDF: 978-3-96088-145-2\\ ISBN ePub: 978-3-96088-146-9\\ ISBN Mobi: 978-3-96088-147-6)): 978-3-86490-444-8) dient als guter Einstieg in die Programmiersprache Python und enthält verschiedene Übungen und kleine Projekte zur Auflockerung. Es gibt neben der elektronischen Version auch eine gedruckte Version, welche ich empfehlen würde. +
- +
-Das englische Buch [[http://docs.python-guide.org/en/latest/|The Hitchhiker’s Guide to Python!]] beschreibt ausführlich für Anfänger und Fortgeschrittene viele Python-Konzepte. +
- +
-Das Buch [[http://inventwithpython.com/cracking|Cracking Codes with Python]] stellt verschiedene Verschlüsselungsmethoden vor und zeigt, wie sich diese mit Python überwinden lassen. Man kann es kaufen oder online lesen. +
- +
-Bevor du ein Buch kaufst, kannst du in der [[http://www.digibib.net/Digibib?LOCATION=BOBIB|DigiBib]] recherchieren und prüfen, ob es in Büchereien in Bochum und Umgebung ausleihbar ist. +
- +
-==== Vertiefungen ==== +
- +
-In diesem Wiki findest du noch weitere [[Programmierübungen]], die du ausprobieren solltest. +
- +
-Wie geht es weiter, wenn man alle Aufgaben erledigt hat? Auf der Seite gibt es [[http://cscircles.cemc.uwaterloo.ca/ressourcen/|Tipps für Fortgeschrittene]] mit Quellen für vertiefende Forschungen.  +
- +
-Das Python-Wiki gibt eine reichhaltige [[https://wiki.python.org/moin/GermanLanguage|Auswahl deutschsprachiger Quellen]] für Videos, Tutorials, Foren, Bücher, etc. +
- +
-Bei hackr.io gibt es in der [[https://hackr.io/tutorials/learn-python|Rubrik Python]] verschiedene Tutorials, die von den Nutzern beurteilt wurden. Darüber hinaus hilft es bei der Vermittlung von "programming buddies", mit denen man gemeinsam lernen kann. +
- +
-Auch Google bietet einen Programmierkurs für Python an: [[https://developers.google.com/edu/python/introduction| Google's Python Class]]. Beim MIT gibt es den Kurs [[https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00sc-introduction-to-computer-science-and-programming-spring-2011/+
-Introduction to Computer Science and Programming]]. +
- +
-==== Quelltext lesen ==== +
- +
-Ein weiterer Weg, um Python zu lernen, ist sicherlich das Lesen von gutem Quelltext. So kann man sich von erfahrenen Programmierern abschauen, wie sie ein Problem gelöst haben. Der Text [[http://docs.python-guide.org/en/latest/writing/reading/|Reading Great Code]] empfiehlt den Quelltext einiger Projekte. Dort wird z.B. [[https://github.com/gleitz/howdoi|howdoi]] erwähnt, das vom Umfang gering und überschaubar für den Einstieg ist. Auch die Standard-Bibliotheken von Python selbst bieten sich für ein Selbst-Studium an - [[https://death.andgravity.com/stdlib|Learn by reading code]] beschreibt interessante Module. +
- +
-Das Buch [[https://store.rpipress.cc/products/code-the-classics|Code The Classics]] stellt verschiedene klassische Computerspiele und deren neue Implementierung in Python vor. +
- +
- +
-===== Projekte ===== +
- +
-  * [[https://github.com/tuvtran/project-based-learning#python|Project-based learning]] +
-  * [[https://www.raspberrypi.org/learning/getting-started-with-the-twitter-api/|Mit Python einen Twitterbot programmieren]], oder einen [[https://hackaday.com/2021/04/08/code-your-own-twitch-chat-controls-for-robots-or-just-about-anything-else/|Twitch-Chatbot]] - [[https://en.wikipedia.org/wiki/Twitch_Plays_Pok%C3%A9mon|Wikipedia zu Twitch plays Pokemon]] +
-  * //Raspberry Pi programmieren mit Python// Kapitel 8.3 »Pong revisited« +
-  * [[Python Pakete veröffentlichen]] +
-  * Für Projekte auf einem Mikrocontroller, wie dem [[ESP8266]], existiert eine Miniversion von Python, die sich Micropython nennt. +
-  * [[Eigene Projekte]] +
-  * [[Minecraft Explorer]] +
- +
-===== Weblinks ===== +
- +
-==== Python lernen ==== +
- +
-  * [[https://play.google.com/store/apps/details?id=com.programiz.learnpython|programiz]] ist eine App für Android/iOS, um Python zu lernen. Es gibt eine freie und eine kommerzielle Version. +
-  * [[https://sw101.tbs1.de|Software101]] stellt verschiedene Python-Bibliotheken und erste Schritte mit ihnen vor. +
-  * **[[http://cscircles.cemc.uwaterloo.ca/de|Computer Science Circles]]** - schönes deutsches Tutorial mit interaktiven Übungen. Basierend auf diesem Kurs hat Thomas Karp eine [[http://infoskript.de/python|Seite mit zusätzlichen Informationen]] erstellt. +
-  * [[https://github.com/asweigart/pythonstdiogames|PythonStdioGames]] enthält eine Sammlung verschiedener Spiele, die jeweils mit einem kurzen Python-Programm realisiert wurden und zudem gut dokumentiert sind. Sie laden ein, durch eigene Ideen erweitert zu werden. +
-  * Vertiefende Übungen gibt es bei inf-schule.de: [[http://inf-schule.de/programmierung/imperativeprogrammierung/fallstudien|Umfangreichere Fallstudien]], [[http://inf-schule.de/programmierung/imperativeprogrammierung/konzepteimp|kleinere Übungen]]. +
-  * [[https://www.codecademy.com/learn/python|Programmierkurs bei Codecademy]] - Neben Grundlagen werden hier auch die Konzepte der [[schule:objekt-orientierte_programmierung|Objekt-Orientierten Programmierung (OOP)]] in einem interaktiven Kurs vorgestellt. +
-  * [[http://opentechschool.github.io/python-beginners/de/index.html|Programmiereinführung mit Python]] von der opentechschool, die sich an die Programmierung von Turtles anlehnt. Am Ende ist eine schöne [[http://opentechschool.github.io/python-beginners/de/where_to_go.html|Literaturliste]]. +
-  * [[https://automatetheboringstuff.com/|Automate the Boring Stuff with Python]] ist ein freies Buch mit schönen Projekten +
-  * [[http://learnpythonthehardway.org/book/|Learn Python the Hard Way]] ist ein freies Buch mit Übungen und Videos, wobei die Videos nur gegen Bezahlung verfügbar sind. +
-  * Wie man mit Python auch funktional programmieren kann, zeigt [[http://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming|A practical introduction to functional programming]]. +
-  * //Kapitel 8: [[Objekt-orientierte Programmierung]]// in dem Buch [[https://tbseins-my.sharepoint.com/personal/bakera_tbs1_de/_layouts/15/guestaccess.aspx?docid=0d64102f20efb4eb1bf0dfff08ad3067e&authkey=ASXKN6gcyfP3kDZqkWcw-Qk&e=107eca0a68df47828de371fd89e8cb48|Raspberry Pi programmieren mit Python]] beschreibt, wie die Objekt-Orientierte Programmierung in [[Python]] realisiert wurde. +
-  * Auf der Seite von [[https://www.codingame.com/|CodinGame]] kann man eine Programmiersprache durch Programmieren von Spielen lernen. Natürlich ist auch Python mit dabei. Die Seite [[http://theaigames.com/|The AI Games]] verfolgt ein ähnliches Ziel. +
-  * Wer unterwegs nicht auf Python verzichten möchte, findet in der App [[https://play.google.com/store/apps/details?id=com.sololearn.python|Learn Python]] einen Helfer für die Programmiersprache. Der Anbieter der App bietet unter sololearn.com auch einen [[https://www.sololearn.com/Course/Python/|Python-Kurs]], der im Browser absolviert werden kann. +
-  * Über das Spiel [[http://py.checkio.org|checkio]] können verschiedene Probleme über die Webseite auf spielerische Art gelöst werden. +
-  * PEP8 ist ein Styling-Guide für Python-Quelltext. Eine Zusammenfassung beschreibt [[https://pymbook.readthedocs.io/en/latest/pep8.html|die wichtigsten PEP8 Regeln]]. +
-  * [[http://nullege.com/|nullege]] ist eine Suchmaschine speziell für Python-Quelltexte. +
-  * [[http://pythontutor.com/visualize.html#mode=edit|Pythontutor]] kann Quelltext visualisieren und hilft mit freiwilligen Helfern, wenn du ein konkretes Problem mit einem Programm hast. +
-  * [[https://github.com/coodict/python3-in-one-pic|Python3 in one pic]] stellt die wichtigsten Python-Konzepte in einer Mindmap dar. +
-  * Die [[http://www.pythonchallenge.com/index.php|PythonChallenge]] stellt über 30 ctf-artige Rätsel, die es (nicht unbedingt nur mit Python) zu lösen gilt. +
-  * [[https://dmoj.ca/|DMOJ]] stellt viele Programmierprobleme bereit, die man online lösen kann. +
-  * [[https://books.goalkicker.com/PythonBook/|Python Notes for Professionals]] ist ein sehr umfangreiches Buch aus Artikeln von Stackoverflow unter freier Lizenz zu Python. +
-  * Bei [[https://exercism.io/|exercism.io]] können unterschiedliche Übungen gemacht werden, die sogar von einem Mentor betreut werden. +
-  * Der [[https://python-podcast.de|Python Podcast]] gibt in der Folge [[https://python-podcast.de/show/python-fuer-einsteiger/|Python für Einsteiger]] Tipps für Anfänger. +
-  * [[https://www.w3schools.com/python/default.asp|W3Schools]] bietet ebenfalls Informationen zu Python. +
- +
-  * [[IDLE|Erste Schritte mit IDLE]] +
-  * [[GUI mit tkinter]] - einfache grafische Oberflächen lassen sich mit ''tkinter'' erstellen. +
-  * [[Programmierübungen]] +
- +
-  * [[Python für C-Sharp Programmierer]] - Übersicht für den Wechsel von C# nach Python +
-  * [[https://www.youtube.com/watch?v=YYXdXT2l-Gg&list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU|Python Tutorials von Corey Schafer]] - Tipps eines Schülers +
-  * [[https://github.com/karlhorky/learn-to-program|learn to program]] ist eine Liste mit verschiedenen Quellen, um Programmieren zu lernen. +
-  * [[https://docs.quantifiedcode.com/python-anti-patterns/|The Little Book of Python Anti-Patterns]] stellt auf einer Webseite vor, wie man besser nicht in Python programmieren sollte. +
-  * [[https://www.geeksforgeeks.org/introduction-to-python-for-absolute-beginners/|Introduction to Python for absolute beginners]] ist eine Sammlung von Artikeln zu unterschiedlichen Themen der Python-Programmierung.  +
-  * [[http://issuehub.io/?language=python|Issuehub.io]] und [[https://gauger.io/contrib/#/language/python|gauger.io]] sammeln Fehler unterschiedlicher Open-Source Projekte, die auch für Einsteiger geeignet sind. Bei github wird man mit der der[[https://github.com/search?l=Python&q=is%3Aopen+label%3A%22good+first+issue%22&type=Issues|folgenden Suchanfrage]] oder [[https://github.com/search?q=org%3Atbs1-bo+is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22&unscoped_q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22|diese]] oder [[https://github.com/issues?q=is%3Aopen+is%3Aissue+author%3Apintman+label%3A%22good+first+issue%22+|diese]] ebenfalls fündig. +
- +
-==== Entwicklungsumgebungen (IDEs) ==== +
- +
-  * Mit [[IDLE]] ist bereits eine einfache IDE in jeder Python-Installation integriert. Sie reicht für viele Projekte bereits aus. IDLE steht für //Integrated DeveLopment Environment// oder //Integrated Development and Learning Environment//+
-  * [[https://codewith.mu/en/|Mu]] ist ein weiterer sehr einfacher und für Anfänger gut geeigneter Editor. +
-  * [[https://thonny.org/|Thonny]] ist eine einfache Entwicklungsumgebung mit einem anschaulichen Debugger, die von der Universität Tartu in Estland entwickelt wird. Bei Fehlern werden typische Fehlerquellen genannt. +
-  * [[https://www.jetbrains.com/pycharm|PyCharm]] von JetBrains ist eine professionelle IDE, die als kostenlose Community- oder kostenpflichtige Professional-Version erhältlich ist. Die IDE bietet eine aufgeräumte Oberfläche und sehr gute Unterstützung bei der Vervollständigung von Schlüsselwörtern und Umbenennung von Methoden, Klassen, Attributen, Variablen und Dateien. Unter dem folgenden Link kann eine kostenfreie [[https://www.jetbrains.com/student/|Studentenlizenz]] der Professional-Version erworben werden, wenn bei der Registrierung die TBS1-Adresse verwendet wird. +
-  * [[https://code.visualstudio.com/|Visual Studio Code]] ist ein leichtgewichtiger und freier Editor für Linux, Windows und MacOS mit einer mächtigen Integration für Python und andere Programmiersprachen.  Mit [[https://vscodium.com/|VSCodium]] existiert eine Variante, die ohne Telemetrie und Microsoft-spezifische Anpassungen auskommt. Mit dem Plugin [[https://github.com/microsoft/codetour|codetour]] können Touren durch den eigenen Quelltext aufgezeichnet werden. +
-  * [[Sublime Text]] ist ein mächtiger und ressourcenschonender kommerzieller Editor, der frei genutzt werden kann. Er ist nicht nur für Python geeignet. Mehr Informationen gibt es unter dem Link. +
- +
-  * [[https://www.geany.org/|Geany]] ist eine Mischung aus IDE und Texteditor. Nicht nur für Python ist das kleine aber feine und übersichtliche Programm geeignet. Auch Quelltexte anderer Programmiersprachen lassen sich gut damit bearbeiten.\\ Damit der Editor für Python gut funktioniert sollten folgende Dinge konfiguriert werden:\\ In den Einstellungen (unter Editor, Einrückung) den Typ auf "Leerzeichen" stellen.\\ Unterstützung für [[https://www.python.org/dev/peps/pep-0008/|pep8]] installieren (''pip install pep8''), damit der Befehl "Erstellen -> Lint" funktioniert. +
-  * [[https://github.com/jonathanslenders/ptpython|ptpython]] ist eine mächtige Erweiterung der Konsole und kann mit ''pip install ptpython'' leicht installiert werden. +
-  * [[https://documen.tician.de/pudb/|pudb]] ist ein einfacher grafischer Debugger für die Konsole. Hiermit können Programme schrittweise ausgeführt werden. +
-  * [[https://www.nano-editor.org/|nano]] ist ein einfacher Editor für Linux und den [[Raspberry Pi]]. Damit in Python-Dateien die Tabs durch vier Leerzeichen ersetzt werden, muss nano mit ''nano -ET4 datei.py'' gestartet werden. +
-  * [[https://repl.it/languages/python3|repl.it]] ist eine einfache Online-Programmierumgebung. Sie läuft vollständig im Browser und kann auch in anderen Webseiten eigebunden werden. +
-  * [[https://jupyter.org/|Project Jupyter]] ist eine Weboberfläche, in der Python-Quelltext mit Text gemischt und in sogenannten Notebooks abgelegt werden kann. Die [[https://jupyter.org/install.html|Installation]] kann einfach über pip erfolgen. +
- +
-  * [[http://eric-ide.python-projects.org/|Eric]] ist eine einfache IDE für Python mit der Projekte verwaltet und GUIs mit [[wpde>Qt (Bibliothek)|Qt]] erstellt werden können. +
-  * [[http://jython.tobiaskohn.ch/index.html|TigerJython]] ist eine in Java geschriebene IDE für die Python-Programmierung. Die Seite bietet auch ein [[http://jython.tobiaskohn.ch/PythonScript.pdf|Skript]] und ein [[http://www.tigerjython.ch/|Online-Tutorial]]. +
-  * [[http://www.liclipse.com/|LiClipse]] verbindet Eclipse und PyDev zu einer IDE. +
-  * [[https://wingware.com/|Wing]] ist eine weitere professionelle Entwicklungsumgebung, die es in kostenpflichtigen und auch kostenfreien Varianten gibt. +
- +
-==== Weitere Links ==== +
- +
-  * [[http://brython.info/index.html|Brython]] ist eine JavaScript-Bibliothek, die Python im Browser ausführen kann (länger nicht mehr aktualisiert). +
-  * [[http://www.skulpt.org/|Skulpt]] ermöglicht es, einen Python-Interpreter auf einer Webseite einzubinden. Der Dienst [[https://trinket.io/|tinket.io]] nutzt dies z.B. +
-  * Bei [[http://rg.robotgame.edu.pl/home|RobotGame]] müssen kleine Roboter in Python programmiert werden, die dann gegeneinander im Wettstreit antreten. Leider scheint das Projekt derzeit (Oktober, 2019) nicht aktiv weiterentwickelt zu werden. +
-  * Webanwendungen lassen sich in Python z.B. mit [[https://bottlepy.org|Bottle]], [[http://flask.pocoo.org/|Flask]], [[https://cherrypy.org/|CherryPy]], oder [[https://justpy.io|JustPy]] erstellen. +
-  * [[https://github.com/satwikkansal/wtfpython/blob/master/README.md|wtfpython]] stellt verwunderliches Verhalten von Python vor und erklärt es. +
-  * [[pythongame|Spiele mit Python]] +
-  * [[https://www.donkeycar.com/|Donkeycar]] ermöglicht das Ansteuern von fernsteuerbaren Autos mit Python. +
-  * [[https://python-podcast.de|Python Podcast]] +
-  * [[https://calmcode.io/|calmcode]] erklärt verschiedene Python-Bibliotheken in einer guten Mischung aus Texten und kurzen Videos.+
schule/python.1622202553.txt.gz · Zuletzt geändert: 2021-05-28 13:49 von pintman