Schlangencode

Wenn ich an Python denke, kommt mir neuerdings immer das Märchen von der kuchenbackenden Mutter, die durch Urheberkonzepte aus dem letzten Jahrtausend über Nacht reich wurde in den Kopf. Und die Bösewichte vom KRRRRAFFFTFUTTERRRRMISCHWERRRRK wurden dabei arm. Oder so ähnlich.

schlangenkuchenJedenfalls hätte ich natürlich liebend gern hier ein Foto von einem beeindruckenden Schlangenkuchen gepostet, völlig ohne Bezug zu meinem Python-Gelerne, aber ich kann mir den Scherz leider nicht leisten. Weil Abmahnungswahrscheinlichkeit von nahezu 1 Gema.
Ich sah mich deswegen dazu gezwungen, schnell ein Bild von einem Stück Schlangenkuchen zu malen. Inklusive billiger Schraffur-Technik aus dem Profilkurs Kunst, 11. Klasse. Oh man, tut mir echt leid, ehrlich. Sorry.

DSC00028

Aber jenseits von abgemahnten Bloggern, bösartigen Agenturen und fragwürdigen Tweets rund um Sexismus, Neokolonialismus, Anti-Sexismus, Rassismus und Kandismus gibt es auch gute Neuigkeiten im Internet: Ich habe große Fortschritte im Python-Kurs gemacht. Und merke, wie schön es sein kann, wenn der Weg zwischen Idee und Umsetzung so unmittelbar ist. Gerade habe ich etwas Zeit, weil der Autor des Kurses, den ich gerade durchspiele, ein kleiner Troll ist und auf der Hälfte des Weges plötzlich auf die Idee kommt, mir eine Pause zu verordnen, damit ich alle Übungen wiederhole und sogar alle neu erlernten Schlüsselwörter aufschreibe. Mit einem Stift! Ein Riesen- Ärgernis, weil ich dafür erst einmal einen Stift und ein Stück Papier kaufen musste. Aber ich mag den Kurs mittlerweile so sehr, dass ich das Papierstück sogar mit mir rumschleppe und ab und zu draufschaue zum Lernen. Aber soweit möchte ich noch gar nicht vorgreifen.
Zurück ganz zum Anfang!

Ich hatte zwar in diesem Post schon etwas erklärt, was man mit Python so anstellen kann, aber der vollständigen Dokumentation halber setze ich lieber etwas früher an.

Ein kleines Beispielprogramm namens schlangenkuchen.py in Python behandelt die
beiden sehr grundlegenden Themen “Print-Funktion”, “Variablen” und “Formatters”. Viel Spaß!

print "Schlangenkuchenrezept\n"     #1

zutat_1 = 'Schlange (vegan)'        #2
zutat_2 = 'Mehl'
zutat_3 = 'Zucker'
zutat_4 = 'Wasser'
menge_1 = 1                         
menge_2 = 300
menge_3 = 500
menge_4 = 100
menge_5 = 200

print "Heute backen wir einen Schlangenkuchen!"     #3
print "Hacken Sie %d %s in kleine Stueckchen." % (menge_1, zutat_1)
print "Mischen Sie %d Gramm %s mit %d Gramm %s." % (menge_2, zutat_2, menge_3, zutat_3)
print "Fuegen Sie erst %d ml, dann nach und nach nocheimal \n%d ml %s, also insgesamt %d ml hinzu." % (
    menge_4, menge_5, zutat_4, menge_4 + menge_5)
print "%s vorsichtig unterheben und zu einem Kuchen formen." % zutat_1
print "Servieren!\n"

#1
So schön, so schlau, so schlange. Ohne viele includes und globls kann man einfach loslegen. Die Funktion print ist ja bereits bekannt, sie sorgt dafür, dass die dahinter stehenden Informationen bspw. in mein Terminal bei der Ausführung geschrieben werden. Aber im Gegensatz zum "printf" aus C gibt es hier noch weniger Möglichkeiten zu Syntaxfehlern. Es wird einfach print und danach die gewünschte Ausgabe in doppelten Anführungszeichen geschrieben. Das hinter print ist ein sogenannter "string". Die "Escape-Sequenz" ist ebenfalls bereits aus C bekannt. Ein Backslash und ein n in einem String bedeuten, dass weder der Backslash, noch das n geschrieben werden, sondern dass danach eine neue Zeile begonnen wird. Das ist nur eine von vielen Escape-Sequenzen.

#2
Hier werden den Variablen Werte bzw. Strings zugeordnet. Zedshaw erklärt Variablen so: "In programming a variable is nothing more than a name for something so you can use the name rather than the something as you code. Programmers use these variable names to make their code read more like English, and because they have lousy memories." Point taken. Die Zutaten werden mit Wörtern versehen, die ich in Single-Quotes schreibe. Die Mengen haben numerische Werte und diese werden einfach so hingeschrieben. Variablen sollten möglichst kurz gehalten werden und nur aus Kleinbuchstaben, Ziffern und Unterstrichen bestehen.

#3
Hier beginnt der eigentliche Printing-Teil. Die Zeilen sind jeweils eine Koch-Anweisung. Ich könnte also auch einfach

print "Hacken Sie 1 Schlange (vegan) in kleine Stückchen."

schreiben. Aber weil das lame wäre, benutze ich stattdessen Platzhalter, sogenannte "Formatters". Anstelle der 1 schreibe ich %d und statt der Schlange (vegan) setze ich ein %s ein. Am Ende der Zeile stehen in den Klammern in derselben Reihenfolge die entsprechenden Variablen, mit Komma getrennt. Das d steht für "decimal" und das s für "string". Eine Liste aller Formatters gibt's hier.
Die vierte Print-Anweisung, die etwas komplizierter aussieht, ist genauso harmlos wenn man sie sich genau anschaut. Es gibt 4 Formatters und der vierte wird mit dem Ergebnis der Rechnung in der Klammer ergänzt.

%d ist also menge_4 + menge_5
%d ist also 100 + 200
%d ist also 300

Voilà und jetzt wird der Teig zum Kuchen! Um das Programm auszuführen, muss es erstmal in eine Datei geschrieben werden. Unter Linux öffne ich ein Terminal und tippe

nano schlangenkuchen.py

ein. Dann wird mit dem Editor nano eine Datei namens schlangenkuchen.py erstellt und geöffnet. Da werfe ich den Code rein, sichere den Kram (mit Strg + O) und schließe das Programm (mit Strg + X). Im Gegensatz zu C und Assembler ist es hier nicht notwendig, die Datei zu compilen und eine separate Output-Datei anzulegen. Ich kann mit

python schlangenkuchen.py

einfach das Programm ausführen. Wenn ich alles richtig gemacht habe, gibt mir das Terminal folgenden Text aus:

Screenshot - 01302013 - 02:43:42 PM

Anfangs bekam ich noch eine Fehlermeldung für Zeile 11, weil ich ein "ü" statt "ue" verwendet habe.
Ich hab vergessen, wie ich es hinbekomme, trotzdem Umlaute einfügen zu können und war zu faul, das nachzuschlagen. Aber so geht's ja auch. Und wer braucht schon Umlaute. Eine Püython offensichtlich nicht!
Nundenn, frohes Backen und Coden.

About these ads
Folgen

Erhalte jeden neuen Beitrag in deinen Posteingang.

Schließe dich 105 Followern an

%d Bloggern gefällt das: