Skriptsprachen: Python

Ähnliche Dokumente
Informatik I. Informatik I. 6.1 Programme. 6.2 Programme schreiben. 6.3 Programme starten. 6.4 Programme entwickeln. 6.1 Programme.

Hello World. Javakurs 2014, 1. Vorlesung. Sebastian Schuck. basierend auf der Vorlage von Arne Kappen. wiki.freitagsrunde.org. 3.

Programmierung in Python

Seminar Scala SS2010, Einführung. R. Schiedermeier Fakultät 07 für Informatik und Mathematik

Lua. June 9, Marcus Brenscheidt Marcin Golkowski ( Dynamische Programmiersprachen Lua )

Java Einführung VARIABLEN und DATENTYPEN Kapitel 2

Skriptsprachen am Beispiel Python

Fachhochschule Wiesbaden - Fachbereich DCSM. Skriptsprachen. Moderne, objekt-orientierte Skriptsprachen mit Betonung auf Ruby

Die freie Programmiersprache Python mit Beispielen für ihren praktischen Einsatz. Python User Group Köln

Grundlagen von Python

Algorithmen mit Python

Vorlesung C-Kurs 9:15-10:45 Mathe 11:15-12:45 1. Woche Hörsaal 1 2. Woche Hörsaal 7

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

Python Programmierung. Dipl.-Ing.(FH) Volker Schepper

Algorithmen und Programmieren II Einführung in Python

Ruby. Programmieren mit Zucker. Thomas Kühn

Scala & Lift. Ferenc Lajko

Propädeutikum. Dipl.-Inf. Frank Güttler

Einführung in die Programmiersprache Python

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

4. Objektorientierte Programmierung mit C++

Programmierkurs Java

Informatik 3 Sitzung 3 - Theorie. Roland Mühlenbernd

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

Vererbung versus Delegation

Java Kurs für Anfänger Einheit 5 Methoden

Smalltalk. Gespräche über alltägliche, allgemeine und unwichtige Dinge. Smalltalk ist die Kunst zu reden, ohne zu denken.

Programmierkurs Python I

ROOT Tutorial für D. Liko

Teil 5: Server-Side- Programmierung

28. April Python ist eine Interpreter Sprache. einfach durch eigene C Module erweiterbar. Daten werden dynamisch getypt

Einführung in die C-Programmierung

Selbstbestimmtes Lernen. Proinformatik III Objektorientierte Programmierung. Format. Inhalt. Buzzwords

3 Objektorientierte Konzepte in Java

einkonto.zahle(+100); //Transaktion Einzahlung einkonto.zahle(-20); //Transaktion Auszahlung einkonto.zahle(+30); //Transaktion Einzahlung

Wer sind wir? BIOQUANT / INF 267, 2. Stock, Zimmer 263. Katja Wegner ( katjaw@web.de ) Ralph Gauges. Ursula Rost ( ur@eml.org )

Erste Schritte zum lauffähigen Java Programm

Eine sehr kurze Einführung in (I)Python und SimpleITK Teil 1 richard rascher-friesenhausen richard.rascher-friesenhausen@hs-bremerhaven.

Java für Computerlinguisten

Lua Grundlagen Einführung in die Lua Programmiersprache

Programmieren 3. Programmieren in C und Python. Prof. Dr. Peter Barth. Hochschule RheinMain. Fachbereich Design Informatik Medien.

Objektorientiertes Programmieren für Ingenieure

Ruby - Objektorientiertes Scripting, aber richtig!

Willkommen zur Vorlesung. Objektorientierte Programmierung Vertiefung - Java

Erwin Grüner

Javakurs für Anfänger

Algorithmen und Datenstrukturen

OOP - Objektorientierte Programmierung

Multimediale Web-Anwendungen. JavaScript. Einführung. MWA JavaScript-Einführung Dr. E. Schön Sommersemester 2015 Folie 1.

Informationsverarbeitung im Bauwesen

Java - Einführung in die Programmiersprache. Leibniz Universität IT Services Anja Aue

Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

GEOPROCESSING UND MODELBUILDER

Ein Überblick über KDevelop

Vorkurs Informatik WiSe 15/16

Programmieren I. Prinzipieller Ablauf. Eigenschaften von JAVA. Source-Code Javac Bytecode. Java Virtual Machine (Java, Browser, Appletviewer)

Erster Kontakt mit Java und Pseudocode

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Vorlesung Informatik II

C vs. C++ Sebastian Meyer. Proseminar C - Grundlagen und Konzepte. Universität Hamburg

Einführung in Python Übung 1

Einführung in Python. Gliederung

QGIS Plugins mit Python programmieren

12. ArcView-Anwendertreffen Workshop Programmierung in ArcGIS. Daniel Fuchs. Wo kann eigene Programmierung in ArcGIS verwendet werden?

Michael Weigend. Python GE-PACKT

Python Programmieren. Variablen, Ausdrücke und Anweisungen

Einstieg ins Programmieren mit Python

Ziele. C und C++ Was ist C? Übersicht. Überblick. C und C++ im Vergleich zu anderen Programmiersprachen einordnen können

Programmieren in Haskell Einführung

Objektorientierte Programmierung OOP Programmieren mit Java

PIWIN 1 Übung Blatt 5

Einführung in Eclipse und Java

Objektorientierte Programmierung

VWA Rhein-Neckar Dipl.-Ing. Thomas Kloepfer. Kommunikation I (Internet) Übung 4 PHP

IntelliJ IDEA. Gliederung. Was ist IntelliJ IDEA? Lizenzmodell Warum IntelliJ einsetzen? IntelliJ und Eclipse Demo. Blick über den Eclipse-Tellerrand

gvsig CE (Community Edition) Schnittstellen zur Automatisierung und Programmierung

Spring Dynamic Modules for OSGi Service Platforms

Informatik Sommercamp 2012

Info B VL 2: Java und Objekt-Orientierung

Programmieren in Python

4 Objektorientierte Programmierung mit Java 4.1 Java-Grundlagen

CORBA. Systemprogrammierung WS

Funktionale Programmierung (in Clojure)

Interaktionen zwischen Objekten durch Senden von Nachrichten und Reagieren auf empfangene Nachrichten

UNIX. Linux. UNIX Derivate, die wichtigsten. Free BSD (Open) Solaris MacOS X Linux. UNIX Dateisystem, wichtige Ordner.

DAP2-Programmierpraktikum Einführung in C++ (Teil 1)

Grundlagen C und C++ Einheit 03: Grundlagen in C++ Lorenz Schauer Lehrstuhl für Mobile und Verteilte Systeme

Einleitung Das VTK-Datenformat Automatisierung mit Python. 3D-Modellierung. Florian Buchegger, Michael Haberleitner. 11. Dez.

Multimedia im Netz Wintersemester 2011/12

Theorie und Praxis einer JSON-RPC-basierten Web-API

Programmierkurs: Delphi: Einstieg

Office in Java. 2. Info-Point Urs Frei

Java für C++ Programmierer

Enterprise Java Beans Einführung

Einführung in die Programmierung mit Qt

1 Einführung Erste Schritte Programmierkurs Datentypen Weiterführende Programmierung

Transkript:

Skriptsprachen: Python Einführung Jan Krüger, Alexander Sczyrba Technische Fakultät Universität Bielefeld 30. September 2016

Python Einführung Eigenschaften, Erweiterungen, Erste Gehversuche 2 of 18

Python Versionsgeschichte Dynamische Programmiersprache, leider oftmals lediglich als Skriptsprache "missbraucht" Erste Version 1991 3.5.2 Aktueller stable Release Viele Performance- und Detailverbesserungen Teilweise veränderte Syntax Nicht rückwärtskompatibel zu 2.X Nativer Unicode Support 2.7.12 2.X immer noch sehr verbreitet (z.b. Bestandteil von OSX) Ab 2.6 Nachimplementierungen von 3.X-Funktionalität Viele Module, die noch nicht (vollständig) 3.X-kompatibel sind (z.b. FLASK) 3 of 18 Aufwärtskompatibilität durch Autoconverter 2to3

Python Eigenschaften Optimiert auf Lesbarkeit Wenige Schlüsselwörter Multi OS-Support Multiparadigmal: imperative, objekt-/aspektorientierte und funktionale Programmierung Sehr gut integriertes Hilfesystem 4 of 18

Python Interna Stark objektorientiert Alles ist ein Objekt! Keine Literale Starke Typisierung Funktionen sind Objekte: Können während der Laufzeit überladen werden Dependency Injection Blöcke werden durch TAB-Einrückungen gekennzeichnet Duck Typing: Variablen(!) und nicht das dahinterliegende Objekt sind typisiert 5 of 18

Python Features und Erweiterungen Python-Shell Interaktiver Pythonmodus IDLE Built-In Entwicklungsumgebung ipython Mächtige alternative interaktive Shell mit viel Magic Cython Teile lassen sich in C extrahieren und maschinenoptimiert ausführen 6 of 18

Das erste Skript Texteditor vi(m), emacs, gedit, kate KEIN Wordprocessor Dateiendung *.py Präambel #!/usr/bin/env python Dateirechte chmod u+x <DATEINAME> #!/ usr / bin / env python print (" Meine erste Ausgabe ") $ chmod u+x test.py $./ test.py 7 of 18

ipython Alternative Pythonshell Tab-Completion Integrierte Hilfe über? und?? OS Shell:!<BEFEHL> Integrierter Debugger Befehlshistorie Tutorial: %magic Das Werkzeug der Wahl zum interaktiven Experimentieren! Starten $ ipython Beenden > quit oder CTRLˆd 8 of 18

Übung Erste Gehversuche Überprüfe die folgenden Ausdrücke in der interaktiven Shell (ipython) und versuche zu erklären, was hier weswegen passiert: > 1/7 > 1.0/7.0 > print 1./7 > 0.9999999999999 > print 0.9999999999999 > 0.9999999999999*9/9 > 0.9999999999999/9*9 9 of 18

Python Einführung Objektreferenzen, Namespaces, Callables, GC 10 of 18

Objekte, Referenzen und Instanzen Python ist streng Objektorientiert primitive Datentypen wie z.b. int sind Objekte Funktionen sind Objekte So gut wie ALLES(!!!) in Python ist ein Objekt 11 of 18

Objekte, Referenzen und Instanzen > 23 # Instanz vom Typ int > a = 23 # a ist eine Referenz auf eine Instanz # vom Typ int mit dem Wert 23 > b = a # b referenziert auf die gleiche # Instanz wie a > b = 46 Welche Werte enthalten a und b? 12 of 18

Objekte, Referenzen und Instanzen Grundlegende Funktionen, die ihr kennen müsst: dir() Listet alle Objekteigenschaften (Namespaces, Callables) auf type() Gibt den Typ eines Objekts wieder help() Eingebaute Hilfe Diese werden auch als builtin_function_or_method bezeichnet. 13 of 18

Übung Wer bin ich und was kann ich? Gegeben sei der folgende Ausdruck: > text = " Hallo Welt!" Wende die Befehle type(), dir(), und help() auf die Variable text an. Was passiert hier? Schaue dir mit Hilfe von help() die Hilfe zu Funktionen/Typen an. 14 of 18

Namespaces und Callables Erstellt euch eine komplexe Zahl c=1+2j. Schaut euch den Real- und den Imaginärteil dieser Zahl mittels real und imag an und abschließend ihre konjugierte komplexe Zahl. > imag (c) > c. imag > c. real > c. conjugate > c. conjugate () 15 of 18

Namespaces und Callables Erstellt euch eine komplexe Zahl c=1+2j. Schaut euch den Real- und den Imaginärteil dieser Zahl mittels real und imag an und abschließend ihre konjugierte komplexe Zahl. > imag (c) # -> NameError > c. imag # Namespace > c. real # Namespace > c. conjugate # Das Funktionsobjekt -> Callable > c. conjugate () # Aufruf Namespaces vergleichbar mit Feldern (Java) und Callables mit Funktion ( müssen cal ()-Funktion implementieren) 16 of 18

Identitätsvergleich vs. Inhaltvergleich > a = " Hello World!" > b = a > c = " Hello World!" > a == b True > a == c True > a is b # id(a) == id(b) True > a is c # id(a) == id(c) False Identität eines Objekts : id() Identitätsvergleichsoperator : is Gleichheitsvergleichsoperator: == 17 of 18

Garbage Collection Python hat ähnlich wie Java eine Garbarge Collection, die sich ums Aufräumen von nicht benötigten Instanzen kümmert. Eine Instanz kann vom GC gelöscht werden, wenn keine Referenz mehr auf sie zeigt. > a = 23 > a = 46 # keine Referenz mehr auf Instanz # ( int :: 23) # -> kann vom GC aus dem Speicher # entfernt werden > del ( a) # del () entfernt Referenzen explizit 18 of 18