Editing Pythonfoo

From Chaosdorf Wiki
Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then publish the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
{{Event
|Title=Pythonfoo
|Description=Dinge in Python
|Type=Meet-Up
|Date=every Thursday
|Start=18:00
|isRelevant=Yes
|Host=dodo,hwmrocker,ytvwld
|Location=[[Hackcenter]] und [[VirtualSpace#Hackcenter]]
}}
{{Project
{{Project
|name=Pythonfoo
|name=Pythonfoo
Line 14: Line 4:
|project category=Meet-Up
|project category=Meet-Up
|image=Pythonfoo.png
|image=Pythonfoo.png
|source=https://github.com/pythonfoo{{!}}github
|source=https://github.com/chaosdorf/pythonfoo{{!}}github
|status=stable
}}
{{Event
|  Title = Pythonfoo
|  Description = Dinge in Python
|  Type = Meet-Up
|  Date = every Thursday
| Start = 18:00
}}
}}
[[File:Matrixfoo.png|right|thumb|Matrixfoo - Quelle: [[User:dodo|dodo]] ]]
[[File:Matrixfoo.png|right|thumb|Matrixfoo - Quelle: [[User:dodo|dodo]] ]]


Line 23: Line 18:


Wir versuchen uns mit mehr oder weniger nützlichen Projekten Python und die Programmierung an sich gegenseitig beizubringen.
Wir versuchen uns mit mehr oder weniger nützlichen Projekten Python und die Programmierung an sich gegenseitig beizubringen.
Leute, die Programmierung und/oder Python lernen wollen, sind deshalb jederzeit willkommen ;). Zur Erfüllung dieses Zieles gibt es in unregelmäßigen Abständen Vorträge über Projekte oder die Eigenheiten dieser Sprache.
Anfänger in der Programmierung und/oder Python sind deshalb jederzeit willkommen ;). Zur Erfüllung dieses Zieles gibt es neuerdings in unregelmässigen Abständen Vorträge über Projekte oder die Eigenheiten dieser Sprache.


== Pythonfoo Lite ==
Ein tragbarer Computer mit Python 2.6, 2.7 oder Python 3.x ist empfehlenswert; zur Not stehen auch Gastrechner zur Verfügung.


Seit 2015 machen wir (also [[User:dodo|dodo]] und [[User:YtvwlD|YtvwlD]]) am 1. und 2. Donnerstag im Monat einen Pythonfoo mit besonderem Fokus auf den Programmier- oder Pythoneinstieg. Daher sind Programmieranfänger*innen zu diesen Terminen besonders willkommen.
== Installation ==
 
Die aktuell installierte Python-Version bekommt man heraus, indem man eine Shell öffnet und "python" eingibt.


Python ist eine leicht erlernbare Programmiersprache, da sie zum Beispiel auf manche komplizierte Eigenheiten anderer Sprachen verzichtet.
Verlassen kann man Python mit dem Kommando <tt>exit()</tt>.


Wir haben die Themen in Level eingeteilt um dem ganzen eine Struktur zu geben und um an geeigneten Stellen Pausen für Aufgaben machen zu können. Unsere Beispiele, Aufgaben und Anleitungstexte finden sich auf [https://github.com/pythonfoo/pythonfooLite GitHub].
Sollte eine Meldung erscheinen wie
Der Befehl »python« wurde nicht gefunden
ist Python nicht installiert.


[https://chaosdorf.de/2015/06/pythonfoo-wie-geht-es-weiter/ Unsere Beweggründe für das alles] haben wir auch mal aufgeschrieben.
=== Standardmäßig vorhanden ===
'''ACHTUNG''' nachfolgende Liste ist UNVOLLSTÄNDIG und basiert auf selbst getesteten und erarbeiteten Ergebnissen.


== "normaler" Pythonfoo ==
Python ist standardmäßig auf folgenden Distributionen vorhanden:
* Debian
* Ubuntu
* Fedora (nicht bestätigt!)


Am 3. und 4. (evtl. auch am 5.) Donnerstag im Monat treffen sich auch Fortgeschrittene.
!ALLE ANGABEN OHNE [http://de.wikipedia.org/wiki/Gew%C3%A4hr GEWÄHR]!
Für diese $Menschen gibt es derzeit immer wieder [https://github.com/pythonfoo/challenges challenges].


== Generell ==
=== Arch ===
Python ist unter Arch nicht standardmäßig installiert, kann aber wie folgt mit root-Rechten nachinstalliert werden:


Ein tragbarer Computer mit Python (>=3.6) ist empfehlenswert.
pacman -Sy python


== Installation ==
Aktuelle Version 3.3.x. Weitere Infos: https://wiki.archlinux.org/index.php/Python
[[Pythonfoo/Installation| Installation von Python]]


== Projekte ==
== Projekte ==
* [[Pythonfoo/Projekte|Projekte]]
Aktuelle "Projekte"
* [https://github.com/pythonfoo/ Pythonfoo-Projekte auf GitHub]
 
* [https://github.com/pythonfoo/pythonfoo/tree/master/beginnerscorner Python-Beispiele für Anfänger auf GitHub]
=== New Agora ===
* [https://github.com/pythonfoo/Tkinterfoo Tkinter]
Ein Projekt initialisiert von {{U|Frosch}}, um per Mail im Web zu surfen.
Hauptsächlich für Unterdrückungsstaaten und Ländern, in denen man Repressalien befürchten muss oder Gebiete mit sehr schlechter Netzanbindung gedacht.
 
[https://github.com/chaosdorf/pythonfoo/tree/master/projekts/newagora GitHub]
[http://piratenpad.de/hU3OW9nNjl Piraten Pad]
 
[[File:joytestPythonfoo.png|right|thumb|joytest.py beim Laufen - Quelle: [[User:dodo|dodo]] ]]
 
=== Stickman ===
{{U|dodo}} arbeitet momentan am "Stickman Killer". Der "Stickman Killer" ist ein kleines Spiel, in dem der Spieler mit einen Dolch den Stickman verfolgt. Trifft der Dolch den Stickman werden Blutspritzer simuliert. Das Spiel benutzt [[PySFML]]. Zu dem Programm benötigt man auch noch ein ganzes Grafikpaket. Ausser dem Grafikfoo wird auch noch ein Programmpaket mitgeliefert.
 
Es gibt verschiedene Versionen:
 
* MO: Originalversion
* M1: Basisprogramm
* M2: M1 mit neuen Grafiken
* M3: M1 mi neuen Grafiken und einen italienischen Klempner, falls die letzte Super Mario Session nicht gut verlief.
* M4: M1 mit Joystick Unterstützung
* OTP: M1 mit dem zusätzlichen Feature, dass [https://wiki.chaosdorf.de/Pythonfoo#Zufall Zufallszahlen] für ein [http://de.wikipedia.org/wiki/One-Time-Pad One Time Pad] erstellt werden
* joytest: Ein auf M1 basierendes Programm mit und für Joysticks
 
=== Zufall? ===
Leider handelt es sich bei der Zufallserstellung in OTP nicht um wirklichen Zufall, dodo arbeitet schon daran ein Programm nur zur Erstellung von Zufallszahlen zu basteln.
 
Allerdings ist es schwiering durch Mathematik (also Ordnung) Zufall (also [http://de.wikipedia.org/wiki/Chaos Chaos]) zu erhalten.
 
Die Lösung sind Funktionen in der Mathematik, die nur in eine Richtung funktionieren (ähnlich wie beim [http://de.wikipedia.org/wiki/RSA-Kryptosystem RSA-Verfahren]).
 
Eine solche Funktion ist zum Beispiel die [http://de.wikipedia.org/wiki/Quersumme Quersumme].
 
Man kann auch Eingaben des Benutzers verwenden (Mausschubserei!).
 
=== Pystorms ===
 
Bei Pystorms handelt es sich um ein futurales Event; sobald Ergebnisse vorliegen werden sie hier vermerkt.
 
Im Zweifelsfall: [[Pystorms]]
 
=== Pong ===
 
Im Moment spielen wir ein wenig mit SFML, um zum Beispiel ein Pong 2.0 mit Python programmieren zu können. Aber das soll Neulinge nicht abschrecken: Jeder hat mal klein angefangen!
 
Für die Planung des Projektes und allgemeines Brainstorming wurde ein [http://piratenpad.de/ro/r.J1vN3Im0yJOATvMf Pad] eingerichtet.
 
Dort wird dann Pong 2.0 geplant. Pong 2.0 hat im Grunde das Ziel, die Objektorientierung unter Python zu verstehen bzw. verständlich zu machen.
 
Der aktuelle Sourcecode zu Pong 1.0 und weiteren Übungsprojekten findet sich in unserem GitHub-Repository [https://github.com/chaosdorf/pythonfoo pythonfoo.git]
 
=== PizzaProxyPrinter ===


== CrashKurs Python ==
Drucklibrary für den PizzaProxyPrinter, die im Verlauf eines Besuchs beim Raumzeitlabor in Mannheim entstanden ist. Das bisherige im Einsatz befindliche Modul im PizzaProxy benutzte LaTeX um auf einem TSP-100 Thermodrucker die Bestellquittung mit QR-Code zu drucken. Die neue Libery benutzt statt dessen die Image-Module zum Erstellen eines Bildes mit dem Druckinhalt und schickt dieses via "lp" an den Drucker. Tricky dabei ist die Formatierung auf beiden Seiten aufeinander abzustimmen. [https://github.com/chaosdorf/pizzaproxyprinter PizzaProxyPrinter auf Github]
* Crashkurs für totale Neueinsteiger:
 
** [https://github.com/pythonfoo/pythonfoo/tree/master/beginnerscorner/crashcourse-0 crashcourse-0 auf GitHub]
=== PyCraft ===
* [http://pythonforbiologists.com/ Python for Biologists] - Helping biologists metamorphose into programmers
{{U|dodo}} erweitert gerade einen (auf GitHub gefundenen) Minecraft-Klon. Es wird die Python-Bibliothek pyglet benutzt.
* [https://github.com/rbreu/python-course Kurs für Anfänger und Sprachwechsler]
* [https://github.com/pythonfoo/pythonfoo/tree/master/beginnerscorner/crashcourse-2 Crashkurs der von Oerb um einen Teil der Objektorientierten Programmierung (OOP) erweitert wurde]


== Sonstiges ==
== Sonstiges ==


=== interesting ===
=== interesting ===
Shell öffnen und folgendes eingeben (ab Python 2.1.2):
Shell öffnen und folgendes eingeben:
python
import this
 
Shell öffnen und folgendes eingeben (ab Python 2.7):
  python
  python
  import antigravity
  import antigravity
antigravity


=== IDEs ===
=== IDEs ===
Line 77: Line 122:
! name+url !! license !! lang !! used by
! name+url !! license !! lang !! used by
|-
|-
| [https://github.com/mbrochh/vim-as-a-python-ide Vim as a Python IDE] || free || multi || {{U|r4mp}}
| [https://github.com/mbrochh/vim-as-a-python-ide Vim as a Python IDE] || free || multi || -
|-
|-
| [http://www.geany.org/ Geany] || GPLv2 || multi || {{U|bison}}, Mechtilde, Michael
| [http://www.geany.org/ Geany] || GPLv2 || multi || {{U|bison}}
|-
|-
| [http://www.sublimetext.com/ Sublime Text 2] || commercial || multi || {{U|marudor}}, {{U|r4mp}}
| [http://www.sublimetext.com/ Sublime Text 2] || commercial || multi || -
|-
|-
| [http://www.jetbrains.com/pycharm/ PyCharm] || commercial + community ed. || Python || {{U|bison}}
| [http://www.jetbrains.com/pycharm/ PyCharm] || commercial || Python || {{U|bison}}
|-
|-
| [http://wingware.com/ Wing IDE] || commercial || Python || -
| [http://wingware.com/ Wing IDE] || commercial || Python || -
Line 89: Line 134:
| [http://eric-ide.python-projects.org/ Eric] || GPLv3 || Python || -
| [http://eric-ide.python-projects.org/ Eric] || GPLv3 || Python || -
|-
|-
| [http://thonny.org/ thonny] || MIT || Python > 3.4 || {{U|dodo}}
|-
| [https://codewith.mu/ Mu] || GPLv3 || Python || -
|-
| [https://atom.io Atom] || MIT || multi  || {{U|ytvwld}}
|-
|[https://code.visualstudio.com/ VS Code]||MIT||multi||{{U|hwmrocker}}
|-
| [https://codelobster.com/ Codelobster] || commercial || multi || -
|}
|}


More at: [http://wiki.python.org/moin/IntegratedDevelopmentEnvironments IntegratedDevelopmentEnvironments]
More at: [http://wiki.python.org/moin/IntegratedDevelopmentEnvironments IntegratedDevelopmentEnvironments]


===Frameworks===
=== Frameworks ===
'''Multimedia''':<br />
'''Multimedia''':<br />
*SFML - Simple and Fast Multimedia Library: [[PySFML]]
* SFML - Simple and Fast Multimedia Library: [[PySFML]]


'''Web''':<br />
'''Web''':<br />
*[http://bottlepy.org/docs/dev/ BottlePy]
* [http://bottlepy.org/docs/dev/ BottlePy]
*[http://www.cherrypy.org/ CherryPy]
* [http://www.cherrypy.org/ CherryPy]
*[http://flask.pocoo.org/ Flask]
 
*[https://www.djangoproject.com/ Django]
=== HowTos ===
*[http://werkzeug.pocoo.org/ Werkzeug]
Einen kleinen Einstieg in die Programmiersprache gibt es hier: [http://de.wikibooks.org/wiki/Python_unter_Linux Wikibooks]
 
Zu empfehlen ist auch das [http://openbook.galileocomputing.de/python/ openbook] von Galileo Computing


'''Gaming''':<br />
Auch nicht schlecht: http://www.tutorialspoint.com/python/python_basic_syntax.htm
*[http://www.pygame.org/news.html PyGame]


'''SQL''':<br />
Ein kleiner Crashkurs von bison steht auf [https://github.com/chaosdorf/pythonfoo/tree/master/beginnerscorner/crashcourse-0 GitHub] zur Verfügung.
*sqlalchemy -


===HowTos ===
... der von Oerb um einen Teil Objektorientierte Programmierung (OOP) mit Python ausgebaut wurde (noch nicht vollständig): [https://github.com/chaosdorf/pythonfoo/tree/master/beginnerscorner/crashcourse-2 GitHub]
*Einen kleinen Einstieg in die Programmiersprache gibt es unter: [http://de.wikibooks.org/wiki/Python_unter_Linux Wikibooks]
*Zu empfehlen ist auch das [http://openbook.galileocomputing.de/python/ openbook] von Galileo Computing
*Auch nicht schlecht: http://www.tutorialspoint.com/python/python_basic_syntax.htm
*Seems nice ;) http://www.dotnetperls.com/python
*Awesome quick reference (mit Übungsaufgaben) [http://anandology.com/python-practice-book/index.html Python Practice Book]
*Wie man format benutzt: [https://pyformat.info/ pyformat]


===Links===
=== Links ===
*[http://www.python.org/dev/peps/pep-0008/ Recommendations for code formatting in Python (in English)]
* [http://pypi.python.org/pypi PyPI - the Python Package Index]
*[http://wiki.python-forum.de/PEP%208%20%28%C3%9Cbersetzung%29 Empfehlung für die Art der Code Formatierung in Python (in Deutsch)]
* [http://doda.co/7-python-libraries-you-should-know-about doda.co - 7 schicke Libs für Python]
*[http://doda.co/7-python-libraries-you-should-know-about doda.co - 7 schicke Libs für Python]
*[https://pypi.org/ PyPI - the Python Package Index]
Please note that all contributions to Chaosdorf Wiki are considered to be released under the Attribution 3.0 Unported (see Chaosdorf Wiki:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!
Cancel Editing help (opens in new window)