Pythonfoo: Difference between revisions

From Chaosdorf Wiki
(→‎Stickman: Rechtschreibung)
(→‎IDEs: added vs code)
 
(91 intermediate revisions by 25 users not shown)
Line 1: Line 1:
{{Event
|Title=Pythonfoo
|Description=Dinge in Python
|Type=Meet-Up
|Start=18:00
|isRelevant=Yes
|Host=dodo,hwmrocker,ytvwld
}}
{{Project
{{Project
|name=Pythonfoo
|name=Pythonfoo
|description=wöchentliches Treffen + Projekte
|description=wöchentliches Treffen + Projekte
|project category=Meet-Up
|image=Pythonfoo.png
|image=Pythonfoo.png
|source=https://github.com/chaosdorf/pythonfoo{{!}}github
|source=https://github.com/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: dodo]]


Es passieren Dinge in Python <del>und keiner weiß was</del>.<br>
[[File:Matrixfoo.png|right|thumb|Matrixfoo - Quelle: [[User:dodo|dodo]] ]]
Jeden Donnerstagabend ab ca. 18 Uhr.


Wir versuchen uns mit mehr oder weniger nützlichen Projekten Python und die Programmierung an sich gegenseitig bei zu bringen.
Es passieren Dinge in Python <del>und keiner weiß was</del>. Jeden Donnerstagabend ab ca. 18 Uhr.
Anfänger in der Programmierung und/oder Python sind deshalb jederzeit Willkommen ;).


Ein tragbarer Computer mit Python 2.6, 2.7 oder Python 3.0 ist empfehlenswert,
Wir versuchen uns mit mehr oder weniger nützlichen Projekten Python und die Programmierung an sich gegenseitig beizubringen.
zur Not stehen auch Gastrechner zur Verfügung.<br>
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.


== Pythonfoo Lite ==


== Installation ==
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.


Die aktuell installierte Python-Version bekommt man heraus, indem man eine Shell öffnet und "python" eingibt.<br>
Python ist eine leicht erlernbare Programmiersprache, da sie zum Beispiel auf manche komplizierte Eigenheiten anderer Sprachen verzichtet.
Verlassen kann man Python mit dem Kommando "exit()".<br>
Sollte eine Meldung erscheinen wie
Der Befehl »python« wurde nicht gefunden
ist Python nicht installiert.


=== Standardmäßig vorhanden ===
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].
'''ACHTUNG''' nachfolgende Liste ist UNVOLLSTÄNDIG und basiert auf selbst getesteten und erarbeiteten Ergebnissen.<br>
Python ist standardmäßig auf folgenden Distributionen vorhanden:
* Debian
* Ubuntu
* Fedora (nicht bestätigt!)


!ALLE ANGABEN OHNE [http://de.wikipedia.org/wiki/Gew%C3%A4hr GEWÄHR]!
[https://chaosdorf.de/2015/06/pythonfoo-wie-geht-es-weiter/ Unsere Beweggründe für das alles] haben wir auch mal aufgeschrieben.


=== ARCH ===
== "normaler" Pythonfoo ==
Python ist unter Arch nicht standardmäßig installiert, kann aber wie folgt mit root-rechten nachinstalliert werden:
pacman -Sy python
Aktuelle Version 3.3.x (03.11.2012)<br>
Weitere Infos: https://wiki.archlinux.org/index.php/Python


== Projekte ==
Am 3. und 4. (evtl. auch am 5.) Donnerstag im Monat treffen sich auch Fortgeschrittene.
Aktuelle "Projekte"
Für diese $Menschen gibt es derzeit immer wieder [https://github.com/pythonfoo/challenges challenges].


[[File:joytestPythonfoo.png|right|thumb|joytest.py beim Laufen - Quelle: dodo]]
== Generell ==
=== 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. <br>
Es gibt verschiedene Versionen: <br>
* MO: Originalversion <br>
* M1: Basisprogramm <br>
* M2: M1 mit neuen Grafiken <br>
* M3: M1 mi neuen Grafiken und einen italienischen Klempner, falls die letzte Super Mario Session nicht gut verlief. <br>
* M4: M1 mit Joystick Unterstützung <br>
* 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  <br>
* joytest: Ein auf M1 basierendes Programm mit und für Joysticks <br>


==== Zufall? ====
Ein tragbarer Computer mit Python (>=3.6) ist empfehlenswert.
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. <br>
Allerdings ist es schwiering durch Mathematik (also Ordnung) Zufall (also [http://de.wikipedia.org/wiki/Chaos Chaos]) zu erhalten.<br>
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]). <br>
Eine solche Funktion ist zum Beispiel die [http://de.wikipedia.org/wiki/Quersumme Quersumme].<br>
Man kann auch Eingaben des Benutzers verwenden (Mausschubserei!). <br>


=== Pystorms ===
== Installation ==
Bei Pystorms handelt es sich um ein futurales Event sobald Ergebnisse vorliegen werden sie hier vermerkt. <br>
[[Pythonfoo/Installation| Installation von Python]]
Im Zweifelsfall: [https://wiki.chaosdorf.de/Pystorms Pystorms]


=== Pong ===
== Projekte ==
* [[Pythonfoo/Projekte|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]
* [https://github.com/pythonfoo/Tkinterfoo Tkinter]


Im Moment spielen wir ein wenig mit SFML um zum Beispiel ein Pong 2.0 mit Python
== CrashKurs Python ==
programmieren zu können. Aber das soll Neulinge nicht abschrecken: <br>
* Crashkurs für totale Neueinsteiger:
Jeder hat mal klein angefangen!
** [https://github.com/pythonfoo/pythonfoo/tree/master/beginnerscorner/crashcourse-0 crashcourse-0 auf GitHub]
* [http://pythonforbiologists.com/ Python for Biologists] - Helping biologists metamorphose into programmers
* [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]


Für die Planung des Projektes und  allgemeines Brainstorming wurde ein [http://piratenpad.de/ro/r.J1vN3Im0yJOATvMf pad] eingerichtet.<br>
== Sonstiges ==
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. <br>


Der aktuelle Sourcecode zu Pong1.0 und weiteren Übungsprojekten findet sich in unserem git-hub Repository [https://github.com/chaosdorf/pythonfoo pythonfoo.git]
=== interesting ===
Shell öffnen und folgendes eingeben (ab Python 2.1.2):
python
import this


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


Drucklibrary für den PizzaProxyPrinter, die im Verlauf eines Besuchs beim Raumzeitlabor in Mannheim entstanden ist. Das bisherige im Einsatz befindliche Modul im PizzaProxy <br>
=== IDEs ===
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 Image mit dem Druckinhalt und schickt dieses via LP an den Drucker. Tricky dabei ist die Formatierung auf beiden Seiten auf einander abzustimmen. [https://github.com/chaosdorf/pizzaproxyprinter PizzaProxyPrinter auf Github]


== Sonstiges ==
{| class="wikitable sortable"
|-
! name+url !! license !! lang !! used by
|-
| [https://github.com/mbrochh/vim-as-a-python-ide Vim as a Python IDE] || free || multi || {{U|r4mp}}
|-
| [http://www.geany.org/ Geany] || GPLv2 || multi || {{U|bison}}, Mechtilde, Michael
|-
| [http://www.sublimetext.com/ Sublime Text 2] || commercial || multi || {{U|marudor}}, {{U|r4mp}}
|-
| [http://www.jetbrains.com/pycharm/ PyCharm] || commercial + community ed. || Python || {{U|bison}}
|-
| [http://wingware.com/ Wing IDE] || commercial || 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}}
|}
 
More at: [http://wiki.python.org/moin/IntegratedDevelopmentEnvironments IntegratedDevelopmentEnvironments]
 
===Frameworks===
'''Multimedia''':<br />
*SFML - Simple and Fast Multimedia Library: [[PySFML]]


=== interesting ===
'''Web''':<br />
Shell öffnen und folgendes eingeben:
*[http://bottlepy.org/docs/dev/ BottlePy]
python
*[http://www.cherrypy.org/ CherryPy]
import antigravity
*[http://flask.pocoo.org/ Flask]
antigravity
*[https://www.djangoproject.com/ Django]
*[http://werkzeug.pocoo.org/ Werkzeug]


=== Frameworks ===
'''Gaming''':<br />
SFML - Simple and Fast Multimedia Library: [[PySFML]]
*[http://www.pygame.org/news.html PyGame]


==== Web ====
'''SQL''':<br />
[http://bottlepy.org/docs/dev/ bottlepy]<br />
*sqlalchemy -
[http://www.cherrypy.org/ cherrypy]<br />


=== HowTos ===
===HowTos ===
Einen kleinen Einstieg in die Programmiersprache gibt es hier: http://de.wikibooks.org/wiki/Python_unter_Linux <br>
*Einen kleinen Einstieg in die Programmiersprache gibt es unter: [http://de.wikibooks.org/wiki/Python_unter_Linux Wikibooks]
Zu empfelen ist auch das [http://openbook.galileocomputing.de/python/ openbook] von galileo computing
*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://pypi.python.org/pypi PyPI] PyPI - the Python Package Index<br />
*[http://www.python.org/dev/peps/pep-0008/ Recommendations for code formatting in Python (in English)]
[http://doda.co/7-python-libraries-you-should-know-about doda.co] 7 schicke libs für Python<br />
*[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]
*[https://pypi.org/ PyPI - the Python Package Index]

Latest revision as of 08:10, 15 October 2022

Pythonfoo
Dinge in Python
Art Meet-Up
Start 18:00
Host dodo, hwmrocker, ytvwld
Relevant? Yes
Pythonfoo stable
Pythonfoo.png
wöchentliches Treffen + Projekte
Quelltext github


Matrixfoo - Quelle: dodo

Es passieren Dinge in Python und keiner weiß was. Jeden Donnerstagabend ab ca. 18 Uhr.

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.

Pythonfoo Lite[edit | edit source]

Seit 2015 machen wir (also dodo und 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.

Python ist eine leicht erlernbare Programmiersprache, da sie zum Beispiel auf manche komplizierte Eigenheiten anderer Sprachen verzichtet.

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 GitHub.

Unsere Beweggründe für das alles haben wir auch mal aufgeschrieben.

"normaler" Pythonfoo[edit | edit source]

Am 3. und 4. (evtl. auch am 5.) Donnerstag im Monat treffen sich auch Fortgeschrittene. Für diese $Menschen gibt es derzeit immer wieder challenges.

Generell[edit | edit source]

Ein tragbarer Computer mit Python (>=3.6) ist empfehlenswert.

Installation[edit | edit source]

Installation von Python

Projekte[edit | edit source]

CrashKurs Python[edit | edit source]

Sonstiges[edit | edit source]

interesting[edit | edit source]

Shell öffnen und folgendes eingeben (ab Python 2.1.2):

python
import this

Shell öffnen und folgendes eingeben (ab Python 2.7):

python
import antigravity

IDEs[edit | edit source]

name+url license lang used by
Vim as a Python IDE free multi r4mp
Geany GPLv2 multi bison, Mechtilde, Michael
Sublime Text 2 commercial multi marudor, r4mp
PyCharm commercial + community ed. Python bison
Wing IDE commercial Python -
Eric GPLv3 Python -
thonny MIT Python > 3.4 dodo
Mu GPLv3 Python -
Atom MIT multi ytvwld
VS Code MIT multi hwmrocker

More at: IntegratedDevelopmentEnvironments

Frameworks[edit | edit source]

Multimedia:

  • SFML - Simple and Fast Multimedia Library: PySFML

Web:

Gaming:

SQL:

  • sqlalchemy -

HowTos[edit | edit source]

Links[edit | edit source]