Python-Programme starten Wenn wir ein Programm (hier einer der Blöcke mit Python-Code) starten, dann starten wir im Hintergrund den sogenannten Python-Interpreter. Das ist ein Programm, welches den Python-Code liest, für den Computer übersetzt und ausführt. Wir können den Python-Interpreter auch ohne Jupyter aufrufen und dort direkt Python-Anweisungen eingeben oder Programme starten, die wir in einer Datei gespeichert haben. Für den Anfang bleiben wir aber bei Jupyter, weil wir hier Programme und Erklärungen leicht kombinieren können. Tipp: Nutzen Sie http://pythontutor.com, um Ihren Code nachvollziehen zu können und Fehler zu finden! Arithmetik Neben Zeichenketten sind Zahlen ein wichtiges Mittel zur Informationsdarstellung. Wir können mit der print-Funktion auch Zahlen ausgeben, diese müssen wir nicht in Gänsefüßchen einschließen: print(17) Siebzehn ist eine ganze Zahl (Englisch: Integer), wir können aber auch Gleitkommazahlen (Englisch: Float) also Zahlen mit Dezimalanteil darstellen: print(3.14159) Dazu verwenden wir - anders als in Deutschland üblich - einen Punkt als Dezimaltrennzeichen anstelle eines Kommas. (Dies ist in den Ländern in denen Python entwickelt wurde so üblich.) Arithmetische Operatoren ermöglichen die Verknüpfung von Zahlen durch Rechnen, z.B. + (Addition), - (Subtraktion), * (Multiplikation), / (Division) und ** (Exponentiation). Wir können eine Berechnung direkt mit print ausgeben: print(1+2+3-4+5) Probieren Sie es selbst für folgende Berechnungen aus: 40 + 2 43 - 1 6 * 7 84 / 2 6**2 + 6 Sie können die folgende Anweisung ändern oder ergänzen. print(43-1) 42 Tipp: Wir können mehrere Anweisungen hintereinander ausführen, indem wir sie als Folge von Anweisungen zeilenweise untereinander schreiben print("Der Umfang eines Kreises mit dem Radius 3 ist:") print(2 * 3.1415926 * 3) Werte und Datentypen Ein Wert, also z.B. eine Zahl oder eine Zeichenkette, ist eines der grundlegenden Dinge, die in einem Programm verarbeitet werden. Beispiele für Werte, die wir schon gesehen haben sind "Hello World!", 17 und 3.1415926. Diese Werte haben verschiedenen Datentypen: "Hello World!" ist eine Zeichenkette (Englisch: string) 17 ist eine ganze Zahl (Englisch: integer) 3.1415926 ist eine Gleitkommazahl (Englisch: float) Wenn wir uns nicht sicher sind, welchen Datentyp ein Wert hat, können wir es mit der Funktion type herausfinden: type("Hello World!") Diese gibt uns - je nach Datentyp - zum Beispiel die englischen Abkürzungen str, int und float zurück (die string, integer und float entsprechen). Probieren Sie es selbst mit verschiedenen Werten (z.B. 2, 42.0) aus: type (43.4) float Übrigens: type funktioniert auch mit anderen Arten von "Typen". Probieren Sie es mal aus, indem Sie der type-Funktion die print-Funktion übergeben: type(print) builtin_function_or_method Was passiert, wenn wir Werte wie "42" und "3.14"mit Gänsefüßchen einfassen wie Zeichenketten? Sind es Zeichenketten oder Zahlen? Finden Sie es heraus indem Sie den folgenden Codeblock nutzen. type("42.9") str In Python gibt es noch weitere Datentypen, die wir später kennenlernen werden. Hier schon einmal ein Überblick: Datentypen Formale und natürliche Sprachen Besonders ausführlich wird der Unterschied zwischen natürlicher und formaler Sprache in Abschnitt 1.6 des englischen Buchs behandelt. Grundsätzlich jedoch sind natürliche Sprachen Sprachen, die gesprochen werden, wie zum Beispiel Deutsch, Englisch oder Französisch. Sie werden nicht von Menschen entworfen und entwickeln sich natürlich. Formale Sprachen sind von Menschen für bestimmte Zwecke entworfene Sprachen. Das hier relevanteste Beispiel sind Programmiersprachen. Sie haben meist sehr strenge Syntax-Regeln, die ihre Struktur bestimmen. Dabei gibt es Regeln zu den erlaubten Zeichen und zu der erlaubten Struktur. Während der menschliche Parser häufig mit sprachlichen Regelbrüchen umgehen kann, kann es der Parser im Computer nicht. Die§ ist ein gr@mmatikalisch k0rrekter S@tz mit ungültigen Zeichen. Satz dieser nur erlaubte Zeichen aber Grammatik falsche hat. Wichtige Unterschiede sind, dass natürliche Sprache zweideutig, redundant und voller Symbolismus sein darf, formale Sprache aber nicht. Exkurs: Programmierer Wir können effektiver programmieren, wenn wir eine Entwicklungsumgebung benutzen. Meistens ist das ein Texteditor, der einem das Programmieren erleichtert, indem z.B. der Quelltext farblich hervorgehoben wird - wie hier in Jupyter auch. Es gibt einen seit Jahren schwelenden "Streit", welcher Editor der beste ist: Emacs oder Vi. Randall Munroe (Autor des Webcomics XKCD) hat das auf seine ganz eigene Art verarbeitet: Real programmers set the universal constants at the start such that the universe evolves to contain the disk with the data they want. (Real Programmers, Randall Munroe) Debugging Als Programmierer/innen machen wir häufiger Fehler. Diese Fehler werden bugs genannt und der Vorgang, Sie zu finden und zu beheben debugging. Dies kann zu starken (negativen) Gefühlen führen. Es lässt sich darauf zurückführen, dass wir Computer unterbewusst wie Menschen behandeln und darum auf unkooperative Computer genauso reagieren wie auf unkooperative Mitmenschen. Es kann helfen darauf vorbereitet zu sein und den Computer als Mitarbeiter zu sehen, der sehr schnell und gut rechnen kann aber sehr genaue Anweisungen braucht. Obwohl es sehr frustrierend sein kann zu lernen wie man diese Fehler findet und behebt ist es eine wertvolle Fähigkeit und in dieser Kategorie werden wir uns regelmäßig Tipps und Strategien des Debugging anschauen, die Ihnen hoffentlich helfen. Computerweitwurf Glossar Legen wir uns eine Liste mit den wichtigsten Begriffen an, die wir im Kapitel 1 gelernt haben: Anweisung: Programm: print-Funktion: Argument: Operator: Wert: Datentyp: Zeichenkette: ganze Zahl: Gleitkommazahl: bug: debugging: Ergänzen Sie die Liste in eigenen Worten. Das ist eine gute Erinnerungs- und Übungsmöglichkeit. Sollten Sie einmal nicht weiterkommen, schauen Sie im Glossar von Think Python nach oder fragen Sie noch einmal nach. Übung Diese Übung ist ein wichtiger Teil des Seminars. Bitte fahren Sie erst fort, wenn Sie die Aufgaben selbständig lösen konnten. Sie geben Ihnen die Möglichkeit, das Gelernte zu überprüfen und zu vertiefen. Aufgabe 1 Wann immer wir etwas neues ausprobieren, sollten wir versuchen, absichtlich einen Fehler zu machen. Probieren Sie z.B. Was passiert, wenn Sie im "Hello World"-Programm eines der Gänsefüßchen weglassen? Was passiert, wenn Sie beide weglassen? Was passiert, wenn Sie print falsch schreiben? Was passiert, wenn Sie beim Aufruf der print-Funktion eine oder beide der Klammern weglassen? Probieren Sie es aus: Solche Experimente helfen uns dabei das Gelesene einzuprägen. Zusätzlich werden mit Fehlermeldungen vertraut und haben eine Ahnung, was sie bedeuten könnten. Lieber jetzt ein paar Fehler absichtlich machen, als später unabsichtlich. Und letztlich lernen wir Programmieren nur, indem wir programmieren. Negative Zahlen können wir mit einem Minuszeichen darstellen: -2. Was passiert, wenn wir ein Plus-Zeichen vor eine Zahl stellen? Was ergibt 2++2? Was ergibt 2+-+2? Probieren Sie es mit verschiedenen Kombinationen von Plus- und Minus-Zeichen aus, bis Ihnen klar ist, was passiert: In der Mathematik ist es kein Problem, eine Null vor einer Zahl zu schreiben: 02 ist gleich 2. Was passiert, wenn wir das in Python probieren? Was passiert, wenn wir zwei Werte ohne Operator dazwischen haben? Aufgabe 2 Nutzen Sie Python als Taschenrechner: Keine Sorge, während Sie hier zwar Textaufgaben lösen müssen ist dies nicht das Ziel der Übung. Wenn Sie nicht weiterkommen schauen Sie sich zuerst die Hinweiße an und fragen Sie gegebenenfalls um Hilfe. Es geht hier darum zu verstehen, wie man diese Aufgabe in Python lösen kann, der Rechenweg ist eher Zweitrangig. Wieviele Sekunden entsprechen 42 Minuten und 42 Sekunden? Wieviele Meilen entsprechen 10 Kilometer Wenn Sie ein Rennen über 10 Kilometer in 42 Minuten und 42 Sekunden beenden, was ist Ihre Durchschnittsgeschwindigkeit (Zeit pro Meile in Minuten und Sekunden)? Was ist Ihre Durchschnittsgeschwindigkeit in Meilen pro Stunde? Speichern Speichern Sie dieses Notebook, so dass Ihre Änderungen nicht verlorengehen (nicht auf einem Pool-Rechner). Rufen Sie dazu im Menü "File" den Punkt "Download as"->"Notebook" auf und nutzen Sie beispielsweise einen USB-Stick, E-Mail, Google Drive, Dropbox oder Ihre HU-Box. Herzlichen Glückwunsch! Sie haben das erste Kapitel geschafft!
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question