Informatik I: Einführung in die Programmierung



Ähnliche Dokumente
Informatik I: Einführung in die Programmierung

Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme.

Programmieren mit Python

Übungszettel 2a - Python

Einführung in die Computerlinguistik

Bash-Skripting Linux-Kurs der Unix-AG

Bash-Skripting Linux-Kurs der Unix-AG

Python 3.6. Erste Schritte auf dem Mac. Syshack. 22. Juni 2017 Version 2.0. Python Erste Schritte auf dem Mac Syshack, 22.

Arithmetik in der tcsh

Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke

Allgemeines. Shell Programmierung Unix. Kommentar. Vorgangsweise. Mag. Thomas Griesmayer

Informatik I: Einführung in die Programmierung

Algorithmik und Programmieren

1.2 Ausführung von Python-Skripten

Informatik I: Einführung in die Programmierung. Übungsblatt 3. Abgabe: Freitag, 15. November 2013, 18:00 Uhr

Erste Schritte zum lauffähigen Java-Programm

Einleitung Entwicklung in C Hello-World! Konstrukte in C Zusammenfassung Literatur. Grundlagen von C. Jonas Gresens

Einführung Datentypen Verzweigung Schleifen. Java Crashkurs. Kim-Manuel Klein May 4, 2015

1. Python Interpreter installieren (WinPython)

Leseprobe. Bernd Klein. Einführung in Python 3. In einer Woche programmieren lernen. ISBN (Buch): ISBN (E-Book):

Python für Linguisten

Python Zahlen, Strings Logik Kontrollstrukturen. Scriptsprachen. Python Basics. Sascha Winter

Vorsemesterkurs Informatik Übungsaufgaben. Tag 4a - Python

Programmieren in Python

JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.

Angewandte Mathematik und Programmierung

SRC Modula-3 Kommandos und Dateien Ein einfaches Beispiel Importieren von Modulen Hinweise zu den Übungsprogrammen Probleme - Mögliche Ursachen

Skriptsprachen: Python

Shell-Scripting Linux-Kurs der Unix-AG

Python SVN-Revision 12

Zugang zu LISP. Franz Inc. Allegro Lisp Version 7.0 ist im Linux Pool installiert.

Shell-Scripting Linux-Kurs der Unix-AG

Programmieren in Python

Programmierung in Python

javascript Coding-Guidelines 2. Ausgabe Februar 2015 Der Guideline beschreibt den verwendeten Coding-Stil von javascript als eigene Richtline.

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Java: Eine kurze Einführung an Beispielen

1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Shell-Scripting Linux-Kurs der Unix-AG

PHP. M.Sc. Nadine Preuß Geographische Analyse- und Darstellungsmethoden WS 15/

Übersicht Shell-Scripten

Tutoraufgabe 1 (Zweierkomplement): Lösung: Programmierung WS16/17 Lösung - Übung 2

Informatik I. Übung 2 : Programmieren in Eclipse. 5. März Daniel Hentzen

Linux und Shell-Programmierung Teil 6

WS2018/ Oktober 2018

1.3.1 Java-Compiler installieren

Programming 101. Carl Herrmann IPMB & DKFZ

Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs

Fachhochschule Südwestfalen Wir geben Impulse. Kontrollstrukturen und Schleifen in Octave

Programmentwicklung ohne BlueJ

Zahlen raten. Al Sweigart, Eigene Spiele programmieren Python lernen, dpunkt.verlag, ISBN D3kjd3Di38lk323nnm

Einführung in Python Teil I Grundlagen

Modulare Programmierung

Einführung Datentypen Verzweigung Schleifen Funktionen Dynamische Datenstrukturen. Java Crashkurs. Kim-Manuel Klein

Vorlesung Informatik II

Arbeiten in der Unix-Kommandozeile. PeP et al. Toolbox Workshop

zu große Programme (Bildschirmseite!) zerlegen in (weitgehend) unabhängige Einheiten: Unterprogramme

Informatik I: Einführung in die Programmierung

1 Berechnung von Summen (ca = 10 Punkte)

Bash-Scripting Linux-Kurs der Unix-AG

Python Installation. 1 Vorbereitung. 1.1 Download. Diese Anleitung ist für Windows ausgelegt.

Inhaltsverzeichnis Einleitung xi Kapitel 1: Die Vorbereitung aufs Abenteuer

ZWEITE ÜBUNG ZUR EINFÜHRUNG IN DIE PROGRAMMIERUNG FÜR COMPUTERLINGUISTEN LEONIE WEIßWEILER

Einstieg in die Informatik mit Java

Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13

3G FL760 Anleitung zur Installation

Die Scala Entwicklungsumgebung. L. Piepmeyer: Funktionale Programmierung - Die Scala Entwicklungsumgebung

WS2018/ Oktober 2018

Softwareentwicklung I

Linux und Shell-Programmierung Teil 5

Python Einführung in die prozedurale Programmierung. Monty Python's Flying Circus

Einführung in die Computerlinguistik Einführung in Perl (1)

KISSsys Anleitung: Lagerkräfte aus KISSsys Modell exportieren

Algorithmen und ihre Programmierung

Ursprünge. Die Syntax von Java. Das Wichtigste in Kürze. Konsequenzen. Weiteres Vorgehen. Rund um Java

Einführung in die Programmierung I. 2.0 Einfache Java Programme. Thomas R. Gross. Department Informatik ETH Zürich

Installation von Java, Java-Editor und BlueJ

Hello World! Eine Einführung in das Programmieren Das erste Programm

Programmierkurs Python I

Arduino für FunkAmateure

Statistische Software (R)

Quick-Start Informatik Programmieren in Python Teil 2

Sun s Java Code Conventions

Institut für Informatik

Informatik I - Übung 2 Programmieren in Eclipse

PROGRAMMDOKUMENTATION SPCM PROGRAMMDOKUMENTATION SPCM PROGRAMMDOKUMENTATION SPCM PROGRAMMDOKUMENTATION PROGRAMMDOKUMENTATION SPCM SPCM

3 Kurzeinführung in Matlab

Einführung in die Computerlinguistik Einführung in Python (1)

Achtung, Speichern nicht vergessen!

Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut

Transkript:

Informatik I: Einführung in die Programmierung 6. Python-, kommentieren, und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 30. Oktober 2015

30. Oktober 2015 B. Nebel Info I 2 / 30

= konkretisierte Algorithmen? Ja, aber nicht immer! Oft eingebettet in. Folge von Anweisungen und Ausdrücken, die einen bestimmten Zweck erfüllen sollen. Interaktion mit der Umwelt (Benutzer, Sensoren, Dateien) Unter Umständen nicht terminierend (OS, Sensorknoten,... ) Auf jeden Fall länger als 4 Zeilen! 30. Oktober 2015 B. Nebel Info I 4 / 30

30. Oktober 2015 B. Nebel Info I 5 / 30

Texteditoren Zum Schreiben von n benutzt man einen Texteditor (kein Textverabeitungssystem wie MS-Word!): notepad (Windows) notepad++ (Windows, Open Source) vim (Open Source) emacs (Open Source) gedit (Open Source) in IDE integrierter Editor (kommt noch) Möglichst mit integriertem Syntaxchecker alle bis auf notepad haben dies oder unterstützen Plugins für Python 30. Oktober 2015 B. Nebel Info I 7 / 30

Zeilenumbruch Umbrechen, wenn Zeilen zu lang. Implizite Fortsetzung mit öffnenden Klammern und Einrückung (siehe PEP8): Lange Zeilen foo = long_function_name(var_one, var_two, var_three, var_four) def long_function_name( var_one, var_two, var_three, var_four): print(var_one) Explizite Fortsetzung mit Backslash: Explizite Fortsetzung foo = long_var_name1 + long_var_name2 + \ long_var_name3 30. Oktober 2015 B. Nebel Info I 8 / 30

Kommentare im Programmtext Kommentiere dein Programm! werden öfter gelesen als geschrieben! Auch für ein selbst: Erinnerungen daran, was man sich gedacht. Nicht das offensichtlich kommentieren, sondern Hintergrundinformationen geben. Möglichst englisch kommentieren. Der Rest einer Zeile nach # wird als Kommentar interpretiert. 30. Oktober 2015 B. Nebel Info I 9 / 30

Block- und Fließtext-Kommentare Blockkommentare: Zeilen, die jeweils mit # beginnen und genauso wie die restlichen Zeilen eingerückt sind beziehen sich auf die folgenden Zeilen. Block-Kommentare def fib(n): # this is a double recursive function # runtime is exponential in the argument if n == 0:... Fließtext-Kommentare kommentieren einzelne Zeilen. Schlechte und gute Kommentare x = x + 1 # Increment x y = y + 1 # Compensate for border 30. Oktober 2015 B. Nebel Info I 10 / 30

docstring-kommentare #-Kommentare sind nur für den Leser. Möchte man dem Benutzer Informationen geben, kann man docstring-kommentare nutzen. Ist der Ausdruck in einer Funktion oder einem Programm (Modul) ein String, wird dieses der docstring, der beim Aufruf der Funktion help ausgegeben wird. Konvention: Benutze den mit drei "-Zeichen eingefassten String, der über mehrere Zeilen gehen kann. docstring def fib(n): """Computes the n-th Fibonacci number. The argument must be a positive integer. """... 30. Oktober 2015 B. Nebel Info I 11 / 30

speichern Nachdem man ein Programm eingetippt hat, sollte man es abspeichern. Lege ein Verzeichnis in deinem Home-Verzeichnis an, und speichere alle deine da. Füge dem Dateinamen immer die Dateierweiterung.py an, damit man weiß, dass es sich um ein Python-Programm handelt. Windows: Wähle immer Alle Dateien beim Sichern damit nicht.txt angehängt wird. 30. Oktober 2015 B. Nebel Info I 12 / 30

30. Oktober 2015 B. Nebel Info I 13 / 30

5 Wege ein Programm zu Starten mit explizitem Aufruf von Python3 Starten als Skript Starten durch Klicken Starten durch Import Starten in einer IDE Beispielprogramm: example.py print("hello world") 30. Oktober 2015 B. Nebel Info I 15 / 30

Starten mit explizitem Aufruf von Python3 Shell # python3 example.py Hello world Voraussetzungen: Wir sind in dem Ordner, in dem die Datei example.py liegt. Die Pfad-Variable (PATH) wurde so gesetzt, dass der Python-Interpreter gefunden wird. Wird normalerweise bei der Installation geleistet. Kann per Hand nachgetragen werden: Windows: Systemsteuerung System und Sicherheit Erweiterte Systemeinstellungen Erweitert Umgebungsvariablen Unix: Setzen der PATH-Variable im entsprechenden Login-Skript oder in der Shell-Konfigurationsdatei (z.b. /.bash_profile) 30. Oktober 2015 B. Nebel Info I 16 / 30

Starten als Skript Shell # example.py Hello world Voraussetzungen: Wir sind in dem Ordner, in dem die Datei example.py liegt. Windows:.py wurde als Standard-Dateierweiterung für Python registriert. Unix: Die erste Zeile in der Datei example.py ist: #!/usr/bin/env python3 und die Datei hat das x-bit (ausführbare Datei) gesetzt. 30. Oktober 2015 B. Nebel Info I 17 / 30

Starten durch Klicken Wenn.py als Standard-Dateierweiterung für Python registriert ist (geht eigentlich bei allen Plattformen mit Desktop-Oberfläche), kann man die Datei durch Klicken (oder Doppelklicken). Leider wird nur kurz das Shell-Fenster geöffnet, mit Ende des Programms verschwindet es wieder. Abhilfe: Am Ende die Anweisung input() in das Programm. Allerdings: Bei Fehlern verschwindet das Fenster trotzdem, und man kann keine Parameter beim Aufruf übergeben. Eigentlich nur für fertig entwickelte mit GUI geeignet. 30. Oktober 2015 B. Nebel Info I 18 / 30

Starten durch Import Nachdem wir Python im Ordner aufgerufen haben, in dem example.py liegt: Python-Interpreter >>> import example Hello world Beachte: Angabe ohne die Dateierweiterung! Funktioniert nur beim ersten Import. Python-Interpreter >>> import example Hello world >>> import example >>> 30. Oktober 2015 B. Nebel Info I 19 / 30

IDE IDLE 30. Oktober 2015 B. Nebel Info I 20 / 30

IDE = Integrated development environment Einen Editor aufrufen, dann das Programm in der Shell, dann wieder den Editor,... Stattdessen kann man IDEs einsetzen für: Projektverwaltung Programm editieren Ausführen Testen und Debuggen Dokumentation erzeugen... Gibt es in den verschiedensten Komplexitäts- und Qualitätsabstufungen. IDE IDLE 30. Oktober 2015 B. Nebel Info I 22 / 30

Pythons IDE: IDLE Wohlmöglich benannt nach Eric Idle. Ist 100% in Python geschrieben und benutzt die tkinter GUI (graphical user interface). Läuft auf allen Plattformen. Multi-Fenster-Texteditor mit Syntaxkennzeichnung, multipler Zurücknahme, smarter Einrückung. Enthält ein Fenster mit Python-Shell. Rudimentäre Debug-Möglichkeiten. Beschreibung siehe: http://docs.python.org/3/library/idle.html. IDE IDLE 30. Oktober 2015 B. Nebel Info I 23 / 30

IDLE in Aktion File-Menü: New, Open und Recent File zum Öffnen einer neuen bzw. vorhandenen Programmdatei. File-Menü: Save und Save as abhängig davon, welches Fenster aktiv. Entweder die Shell-Interaktionen oder die Programmdatei wird gespeichert. Shell-Menü: Nur im Shell-Fenster aktiv. Hier kann man mit Restart den Interpreter neu. Run-Menü: Ist nur im Editorfenster aktiv. Hier kann man die Syntax überprüfen und das Programm, nachdem der Interpreter neu gestartet wurde. IDE IDLE 30. Oktober 2015 B. Nebel Info I 24 / 30

30. Oktober 2015 B. Nebel Info I 25 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, dann die Operation ausführt, 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, dann die Operation ausführt, und das Ergebnis ausgibt. 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, dann die Operation ausführt, und das Ergebnis ausgibt. Erst einmal nur für + und - 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, dann die Operation ausführt, und das Ergebnis ausgibt. Erst einmal nur für + und - Dabei nutzen wir die Funktion input(string), die eine Benutzereingabe erwartet und diese als String zurück gibt. 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, dann die Operation ausführt, und das Ergebnis ausgibt. Erst einmal nur für + und - Dabei nutzen wir die Funktion input(string), die eine Benutzereingabe erwartet und diese als String zurück gibt. Python-Interpreter >>> input('dein Eingabe:') Deine Eingabe: 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, dann die Operation ausführt, und das Ergebnis ausgibt. Erst einmal nur für + und - Dabei nutzen wir die Funktion input(string), die eine Benutzereingabe erwartet und diese als String zurück gibt. Python-Interpreter >>> input('dein Eingabe:') Deine Eingabe: 30. Oktober 2015 B. Nebel Info I 27 / 30

Ein kleiner Wir wollen ein Skript, dass wiederholt nach zwei Operanden und einem arithmetischen Operator fragt, dann die Operation ausführt, und das Ergebnis ausgibt. Erst einmal nur für + und - Dabei nutzen wir die Funktion input(string), die eine Benutzereingabe erwartet und diese als String zurück gibt. Python-Interpreter >>> input('dein Eingabe:') Deine Eingabe:blau blau 30. Oktober 2015 B. Nebel Info I 27 / 30

Das Programm Python-Programm while (True): op1 = float(input("1. Operand: ")) op2 = float(input("2. Operand: ")) opa = input("operator: ") if opa == "+": print(op1 + op2) elif opa == "-": print(op1 - op2) else: print("falscher Operator") 30. Oktober 2015 B. Nebel Info I 28 / 30

break und continue Man kann das Programm mit ˆC beenden (oder durch eine falsche Eingabe). 30. Oktober 2015 B. Nebel Info I 29 / 30

break und continue Man kann das Programm mit ˆC beenden (oder durch eine falsche Eingabe). Wir würden gerne (kontrolliert) die while-schleife verlassen! 30. Oktober 2015 B. Nebel Info I 29 / 30

break und continue Man kann das Programm mit ˆC beenden (oder durch eine falsche Eingabe). Wir würden gerne (kontrolliert) die while-schleife verlassen! Dafür gibt es break: 30. Oktober 2015 B. Nebel Info I 29 / 30

break und continue Man kann das Programm mit ˆC beenden (oder durch eine falsche Eingabe). Wir würden gerne (kontrolliert) die while-schleife verlassen! Dafür gibt es break: Python-Programm if op1 == "": break; 30. Oktober 2015 B. Nebel Info I 29 / 30

break und continue Man kann das Programm mit ˆC beenden (oder durch eine falsche Eingabe). Wir würden gerne (kontrolliert) die while-schleife verlassen! Dafür gibt es break: Python-Programm if op1 == "": break; Will man in der while-schleife den nächsten Durchlauf beginnen, benutzt man continue: 30. Oktober 2015 B. Nebel Info I 29 / 30

break und continue Man kann das Programm mit ˆC beenden (oder durch eine falsche Eingabe). Wir würden gerne (kontrolliert) die while-schleife verlassen! Dafür gibt es break: Python-Programm if op1 == "": break; Will man in der while-schleife den nächsten Durchlauf beginnen, benutzt man continue: Python-Programm if op2 == "": print("op2 ist leer!") continue 30. Oktober 2015 B. Nebel Info I 29 / 30

Zusammenfassung Wollen wir richtige, brauchen wir Werkzeuge (Tools). Texteditor (nicht Word!), möglichst mit integriertem Syntaxchecker. Werden Zeilen zu lang, müssen sie umgebrochen werden. Kommentare sind hilfreich, um das Programm zu verstehen. Block-, Fließtext und doctsring-kommentare Python- können auf viele verschiedene Arten gestartet werden. IDLE ist eine schöne und einfache IDE (Integrated Development Environment). In while-schleifen gibt es break und continue. 30. Oktober 2015 B. Nebel Info I 30 / 30