Informatik I. 12. Erste Schritte in Python. Jan-Georg Smaus. Albert-Ludwigs-Universität Freiburg. 16. Dezember 2010

Ähnliche Dokumente
Informatik I. Informatik I 16. Dezember Erste Schritte in Python Motivation Motivation Ausdrücke

Informatik I. Jan-Georg Smaus. Motivation. Informatik I. 12. Erste Schritte in Python. Albert-Ludwigs-Universität Freiburg. 16.

Programmieren in Python

Programmieren in Python

Programmieren in Python

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung

Informatik I: Einführung in die Programmierung

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

Einführung in die Programmiersprache Python

1 Allgemeines. Informatik I: Einführung in die Programmierung 2. Erste Schritte in Python. Die Programmiersprache Python... Programmiersprachen

Programmierkurs für das modularisierte Lehramt. September 2011, 8. Vorlesung. Stuttgart, den 22. September Dr. Heiko Schulz.

Algorithmik und Programmieren

Informatik I. Informatik I. 7.1 Der let-ausdruck. 7.2 Das Graphik-Paket image.ss. 7.3 Fraktale Bilder. Wiederholte Berechnungen: Der let-ausdruck

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

1 Erste Schritte in Scheme

Informatik für Schüler, Foliensatz 2 Ausdrücke, Variablen, Datentypen, Ein- und Ausgabe

Quick-Start Informatik Programmieren in Python Teil 1

Begleittext: Einführung in das Programmieren in Java für Nichtinformatiker

Intensivübung zu Algorithmen und Datenstrukturen

Python zur Lösung von AvA Übung 1 VON MORITZ FEY

Informatik I: Einführung in die Programmierung

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

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2018/2018. Inhaltsverzeichnis 1

Kapitel 2: Python: Ausdrücke und Typen. Grundlagen der Programmierung 1. Holger Karl. Wintersemester 2016/2017. Inhaltsverzeichnis 1

Informatik I. Grundlagen der systematischen Programmierung. Peter Thiemann WS 2007/08. Universität Freiburg, Germany

WS2018/ Oktober 2018

Die Programmiersprache C Eine Einführung

Übungszettel 2a - Python

Informatik I Für eine feste Zahl. Informatik I Benutzereingaben Eine Funktion factorial Iteration von unten. 18.

Übungen zur Vorlesung Wissenschaftliches Rechnen I

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

Vorkurs Informatik WiSe 17/18

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Wiederholung Kapitel 4. Birgit Engels, Anna Schulze WS 07/08

Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Operatoren, Kommentare, Ein-/Ausgabe

III.1 Prinzipien der funktionalen Programmierung - 1 -

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Informatik I. 17. Nochmals Veränderlichkeit. 20. Januar Albert-Ludwigs-Universität Freiburg. Informatik I. Jan-Georg Smaus. Die Klasse Musician

Algorithmen und Datenstrukturen

Skriptsprachen: Python

Python Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14

Informatik I. 7. Der let-ausdruck und eine graphische Anwendung. 18. November Albert-Ludwigs-Universität Freiburg. Informatik I.

Informatik I: Einführung in die Programmierung

Java I Vorlesung Imperatives Programmieren

Vorkurs Informatik WiSe 16/17

1 Aufgaben 1.1 Objektorientiert: ("extended-hamster") Sammel-Hamster

Kapitel 05. Datentypen. Fachgebiet Knowledge Engineering Prof. Dr. Johannes Fürnkranz

Projekt 3 Variablen und Operatoren

Programmierkurs Python I

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

Einführung in die Programmierung II. 1 Einleitung/Übersicht

WS2017/ Oktober 2017

Algorithmen und Programmieren II Einführung in Python

Einführung in die Programmierung mit VBA

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Informatik I. Informatik I. 3.1 Wiederholung. 3.2 Die Sorten boolean und string. 3.3 Verzweigungen. 3.1 Wiederholung. Bisher...

JAVA-Datentypen und deren Wertebereich

Übung zur Vorlesung Wissenschaftliches Rechnen Sommersemester 2012 Auffrischung zur Programmierung in C++, 1. Teil

Vorlesung Programmieren

Informatik I. 15. Zusammengesetzte Daten und Klassen. Jan-Georg Smaus. 11. Januar Albert-Ludwigs-Universität Freiburg

Crashkurs Python und Sage U23 Krypto-Mission

Gliederung. n Teil I: Einleitung und Grundbegriffe. n Teil II: Imperative und objektorientierte Programmierung

Programmieren in Java

Aufgabenblatt 4 IT-Security Angewandte Informatik WS 2016/17

Telecooperation/RBG. Grundlagen der Informatik I Thema 0: Einführung. Dr. Guido Rößling. Copyrighted material; for TUD student use only

Methoden zur Interpretation LISPähnlicher. Programmiersprachen. Seminarvortrag / 53 FH AACHEN FACHBEREICH 9 TOBIAS STUMM MATR.-NR.

6. Grundlagen der Programmierung

Grundlagen der Programmierung

Programmieren in Haskell Einführung

Kapitel 4. Programmierkurs. Datentypen. Arten von Datentypen. Datentypen und Operatoren Ganzzahlige Numerische Datentypen Logischer Datentyp

Informatik I. Informatik I. 5.1 Listen. 5.2 Rekursion auf Listen. 5.3 Polymorphismus. 5.4 Eingebaute Listen. 5.1 Listen. Listen

Informatik I. 2. Erste Schritte in Scheme. 21. Oktober Albert-Ludwigs-Universität Freiburg. Informatik I. Jan-Georg Smaus

Einführung in die Computerlinguistik

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

Outline. 1 Einleitung. 2 Einführung in C. 3 Fortgeschrittenes in C. 4 Einführung in Emacs Lisp. 5 Einführung in Prolog. 6 Formale Semantik

Ausdrücke (1) Grundlegende Eigenschaften

Programmiervorkurs. Wintersemester 2013/2014

Programm heute. Algorithmen und Datenstrukturen (für ET/IT) Definition Algorithmus. Wie beschreibt man Algorithmen?

Programmieren 1 C Überblick

Informatik I: Einführung in die Programmierung

Algorithmen und Datenstrukturen (für ET/IT)

Bisher. Programme, Sequenzen von Formen. Ausdrücke und ihre Auswertung (Substitutionsmodell)

Aufruf des Compilers in der Kommandozeile und Ausführung des Programms:

Übungen zu Kognitive Systeme I

Angewandte Mathematik und Programmierung

Programming 101. Carl Herrmann IPMB & DKFZ

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

Funktionen (fortgeschritten)

7. Einführung in C++ Programmieren / Algorithmen und Datenstrukturen 1 Prof. Dr. Bernhard Humm FB Informatik, Hochschule Darmstadt

Einleitung Typsystem Typisierung Zusammenfassung Literatur. Typisierung. Effiziente Programmierung. Thomas Schnieders

Einführung in die wissenschaftliche Programmierung 1

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

Transkript:

Informatik I 12. Erste Schritte in Python Jan-Georg Smaus Albert-Ludwigs-Universität Freiburg 16. Dezember 2010 Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 2 / 40

Informatik I 16. Dezember 2010 12. Erste Schritte in Python 12.1 Motivation 12.2 Ausdrücke Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 3 / 40

Motivation 12.1 Motivation Warum eine zweite Programmiersprache? Geschichte Warum Python? Materialien Arbeitsweise Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 3 / 40

Motivation Danksagung/Quellenangabe Die Vorlesung bisher baute auf den Materialien von Prof. Dr. Peter Thiemann und seinen Mitarbeitern auf. Im Folgenden verwendet die Vorlesung Materialien von Malte Helmert, Robert Mattmüller, Gabi Röger und Felix Steffenhagen, die bei diversen Python-Kursen in Freiburg zum Einsatz kamen. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 4 / 40

Motivation Warum eine zweite Programmiersprache? Warum eine zweite Programmiersprache? Eine Polemik Zitate aus Die Macht der Abstraktion [KS07]: Zur Illustration und zum Training der Programmierung dient Scheme, eine kleine und leicht erlernbare Programmiersprache, die es erlaubt, die Konzepte der Programmierung zu präsentieren, ohne Zeit mit der Konstruktvielfalt anderer Programmiersprachen zu verlieren. Scheme-Könner sind in der Lage, andere Programmiersprachen in kürzester Zeit zu erlernen. Alle wichtigen Programmiertechniken lassen sich in Scheme demonstrieren. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 5 / 40

Motivation Warum eine zweite Programmiersprache? Positive Antworten Zitate, gefunden auf der Webseite von Prof. Thiemann: You can never understand one language until you understand at least two. (Ronald Searle, geboren 1920) Eine zweite Sprache zu können, ist wie eine zweite Seele zu haben. (Karl der Große, 747/748(?)-814) Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 6 / 40

Motivation Warum eine zweite Programmiersprache? Weitere Gründe Früher oder später muss man in jedem Fall mehrere Programmiersprachen lernen, man sollte sich also frühzeitig an Unterschiede in der Syntax gewöhnen. Jede Programmiersprache hat ihre Vor- und Nachteile. Programmiersprachen gehören verschiedenen Paradigmen an... Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 7 / 40

Motivation Warum eine zweite Programmiersprache? Programmierparadigmen Man unterscheidet imperative, funktionale, logische, objektorientierte, prozedurale, Skript-, und weitere Programmiersprachen. Es geht hier um grundsätzlich verschiedene Arten zu programmieren. Grob vergleichbar mit dem Unterschied zwischen Alphabetschriften, Silbenschriften und logografischen Schriften. Die Einteilung ist keineswegs eindeutig, selbst wenn man dies anstreben würde. Im Gegenteil versuchen aber typischerweise die Autoren einer Sprache in einem bestimmten Paradigma, auch Features anderer Paradigmen anzubieten. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 8 / 40

Motivation Warum eine zweite Programmiersprache? Scheme Scheme ist, cum grano salis, eine funktionale Programmiersprache. In den bisherigen Folien tauchte 22 mal das Wort Funktion und 113 mal das Wort Prozedur auf, aber nicht ein einziges Mal die Worte Befehl oder Zuweisung. Das Funktionale ist das, was an Scheme so komisch ist (abgesehen von den vielen Klammern und der Präfixsyntax). Das letzte Kapitel Prozeduren als Daten zeigt am deutlichsten, worum es bei der funktionalen Programmierung geht. Ich möchte das funktionale Paradigma deutlich herausarbeiten und habe deshalb insbesondere die Kapitel 9 und 12 aus dem Buch [KS07] weggelassen. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 9 / 40

Motivation Warum eine zweite Programmiersprache? Python Python ist eine objektorientierte Skriptsprache. Ich verkaufe sie Ihnen als imperative Programmiersprache. Ich werde hier nicht die Besonderheiten von Python hervorheben, sondern sie im Gegenteil herunterspielen (wie bei Scheme auch, siehe z.b. die Ausführungen zu Sorten). Ich möchte das imperative Paradigma deutlich herausarbeiten. Allerdings nicht heute! Zunächst wollen wir einige grundlegende Konstrukte aus Scheme einfach nach Python übersetzen. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 10 / 40

Motivation Geschichte Zur Geschichte Pythons Ursprünglich entwickelt von Guido van Rossum im Rahmen eines Forschungsprojekts am Centrum voor Wiskunde en Informatica in Amsterdam. Entwickelt seit 1989, erste öffentliche Version 1991. Meilensteine: Versionen 1.0.0 (1994), 1.5 (1998), 2.0 (2000), 3.0 (2008) Mittlerweile wird Python als Open-Source-Projekt von der Allgemeinheit weiterentwickelt, wobei ein innerer Kern die meiste Arbeit übernimmt. Guido van Rossum hat als BDFL (benevolent dictator for life, gütiger Diktator auf Lebenszeit) das letzte Wort. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 11 / 40

Motivation Geschichte Zum Namen Python ist nicht nach einem Reptil benannt, sondern nach Monty Python, einer (hoffentlich!) bekannten englischen Komikertruppe aus den 1970ern. Daher auch viele Namen von Tools rund um Python: IDLE Eric Bicycle Repair Man Grail Wo andere Programmiersprachen die Variablen foo und bar verwenden, wählt man in Python gerne spam und egg. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 12 / 40

Motivation Warum Python? Warum Python? Python hat (z.b. gegenüber der C-Familie) einen hohen Abstraktionsgrad ( weiter weg von der Maschine ), z.b. automatische Speicherverwaltung und unbeschränkte Ganzzahlarithmetik. Programme sind kürzer, lesbarer, portabler, langsamer. Scheme hat ebenfalls einen hohen Abstraktionsgrad. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 13 / 40

Motivation Warum Python? Python vs. Scheme Fundamental unterschiedliche Syntax Scheme (define factorial (lambda (n) (if (<= n 1) 1 (* n (factorial (- n 1)))))) Python def factorial(n): if n <= 1: return 1 else: return n * factorial(n-1) Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 14 / 40

Motivation Warum Python? Python vs. Scheme Viele Gemeinsamkeiten im Kern : Python for Lisp Programmers, http://www.norvig.com/python-lisp.html Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 15 / 40

Motivation Materialien Materialien Für die Online-Dokumentation ist der Einstiegspunkt http://docs.python.org/py3k/. Besonders wichtig/interessant: am Anfang das Tutorial (http://docs.python.org/py3k/tutorial/index.html) im Programmieralltag die Library Reference (http://docs.python.org/py3k/library/index.html) Links zu Büchern finden Sie auf unserer Webseite. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 16 / 40

Motivation Materialien Materialien: Bücher M. Lutz. Learning Python [Lut09]. (Für Einsteiger) A. Martelli. Python in a Nutshell [Mar06]. (Für Fortgeschrittene. Noch Python 2.) A. Martelli, A. Martelli Ravenscroft und D. Ascher. Python Cookbook [MRA05]. (Codebeispiele. Noch Python 2.) M. Pilgrim. Dive Into Python 3 [Pil09]. (Für Fortgeschrittene.) http://diveintopython3.org/ A. Downey, J. Elkner und C. Meyers. How to Think Like a Computer Scientist: Learning With Python [DEM02]. (Für Programmieranfänger. Noch Python 2.) http://www.greenteapress.com/thinkpython/thinkcspy/ Peter Kaiser und Johannes Ernesti. Python 3: Das umfassende Handbuch [KE09]. (Deutsch. Für Programmieranfänger.) Alte Version (Python 2): http://openbook.galileocomputing.de/python/ Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 17 / 40

Motivation Arbeitsweise Arbeitsweise Auf den BP-Rechnern ist Python selbstverständlich installiert. Zur Installation auf Ihrem eigenen Rechner gibt es Informationen auf unserer Webseite. Wie bei Scheme auch gibt es zwei Arten der Interaktion: Schreibe ein Programm (oberes Fenster in DrRacket). Benutze den interaktiven Interpreter (in DrRacket REPL genannt). Nur ist die Welt jetzt nicht mehr ganz so komfortabel. Wir müssen ein paar grundlegende Konzepte aus den Betriebssystemen verstehen. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 18 / 40

Motivation Arbeitsweise Betriebssysteme Datei: eine Zeichenkette (wobei es spezielle Zeichen für Zeilenumbruch und Dateiende gibt) versehen mit einem Namen und einigen weiteren Informationen (Datum der letzten Änderung, Leserechte etc.). Insbesondere die Scheme-Programme (...rkt) sind Dateien. Die Daten auf der Festplatte eines Computers sind in Dateien organisiert. Editor: ein allgemeines Programm zum Erstellen und Bearbeiten von Dateien. Beispiele: vi oder emacs. Die meisten Computerlaien kennen dieses Konzept wahrscheinlich nicht, weil sie nur Spezialprogramme (z.b. Word) zum Erstellen von Dateien verwenden. Das obere Fenster in DrRacket ist ein Editor für Scheme-Programme mit moderaten Spezialfunktionen. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 19 / 40

Motivation Arbeitsweise Betriebssysteme Shell: Ein Programm, das auf Betriebssystemebene Befehle entgegen nimmt, d.h., von dem aus man andere Programme aufruft. Auch dieses Konzept kennen die meisten Computerlaien wahrscheinlich nicht, da in heutigen fensterbasierten Betriebssystemen Programme typischerweise über Menus aufgerufen werden. Bei weiteren Fragen wenden Sie sich bitte an Herrn Wimmer! Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 20 / 40

Motivation Arbeitsweise Arbeitsweise Python-Programme schreiben Sie mit einem beliebigen Editor. Das Programm python3 wird aus der Shell aufgerufen und kann sowohl verwendet werden, um Python-Programme auszuführen, als auch als interaktiver Interpreter benutzt werden. Details: siehe Übungen! Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 21 / 40

Motivation Arbeitsweise Interpreter starten In der Shell: Shell # python3 Python 3.1.2 (r312:79147, Apr 15 2010, 12:35:07) [GCC 4.4.3] on linux2 Type "help", "copyright", "credits" or "license" for more information. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 22 / 40

Ausdrücke 12.2 Ausdrücke Ausdrücke Auswertung / Ausgabe Zahlen Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 23 / 40

Ausdrücke Ausdrücke Grundbausteine Zeichen mit fester Bedeutung Konstanten (Literale), z.b. für Zahlen oder Strings: 42-17 3.1415926535 "Gambolputty" Vordefinierte Namen (primitive Operatoren), z.b. für arithmetische Operationen: + - * / Zeichen mit frei wählbarer Bedeutung Namen (Bezeichner, Identifier, Variablen) x y egg spam Aus diesen bilden wir Ausdrücke. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 24 / 40

Ausdrücke Ausdrücke Bildung von Ausdrücken Ein Literal ist ein Ausdruck. Eine Variable ist ein Ausdruck. Die (Funktions-)Anwendung, Applikation eines vordefinierten Namens auf Ausdrücke (Operanden) ist ein Ausdruck: 17 + 4 x * (17 + 4) Unterschied zu Scheme? Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 25 / 40

Ausdrücke Auswertung / Ausgabe Auswertung Ausdrücke haben einen Wert, sie können ausgewertet werden. Jeder Ausdruck beschreibt einen Berechnungsprozess zur Ermittlung seines Wertes (Auswertung). Start der Auswertung durch Eingabe im Interpreter. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 26 / 40

Ausdrücke Auswertung / Ausgabe Auswertung: Beispiele Eingabe eines nackten Ausdrucks im Interpreter: Python-Interpreter >>> 42 42 >>> 2 * (17 + 4) 42 Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 27 / 40

Ausdrücke Auswertung / Ausgabe Auswertung: Beispiele II Man kann auch die print-funktion verwenden, um einen Ausdruck auszugeben: Python-Interpreter >>> print(42) 42 >>> print(2 * (17 + 4)) 42 print ist der übliche Weg, Ausgaben zu erzeugen und funktioniert daher auch in richtigen Programmen, d.h. außerhalb des Interpreters. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 28 / 40

Ausdrücke Auswertung / Ausgabe Nackte Ausdrücke vs. print Es besteht ein kleiner aber feiner Unterschied zwischen nackten Ausdrücken und Ergebnissen der print-funktion: Python-Interpreter >>> print(7 * 6) 42 >>> print(2.8 / 7) 0.4 >>> print("oben\nunten") oben unten Python-Interpreter >>> 7 * 6 42 >>> 2.8 / 7 0.39999999999999997 >>> "oben\nunten" oben\nunten Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 29 / 40

Ausdrücke Zahlen Zahlen Python kennt drei verschiedene Typen (Sorten) für Zahlen: int für ganze Zahlen beliebiger Größe. float für Fließkommazahlen. complex für komplexe (Fließkomma-) Zahlen. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 30 / 40

Ausdrücke Zahlen int int-konstanten schreibt man, wie man es erwartet: Python-Interpreter >>> 10 10 >>> -20-20 Python benutzt für Arithmetik die üblichen Symbole: Grundrechenarten: +, -, *, /, // Modulo: % Potenz: ** Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 31 / 40

Ausdrücke Zahlen Rechnen mit int: Beispiele Python-Interpreter >>> 14 * 12 + 10 178 >>> 13 % 8 5 >>> -2 % 8 6 >>> 11 ** 11 285311670611 Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 32 / 40

Ausdrücke Zahlen Integer-Division: Ganzzahlig oder nicht? Der Divisionsoperator / liefert das genaue Ergebnis. Das Ergebnis der ganzzahligen Division erhält man mit //. Dabei wird immer abgerundet. Python-Interpreter >>> 20 / 3 6.666666666666667 >>> -20 / 3-6.666666666666667 >>> 20 // 3 6 >>> -20 // 3-7 Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 33 / 40

Ausdrücke Zahlen Fließkommazahlen und komplexe Zahlen float-konstanten schreibt man folgendermaßen: 2.44, 1.0, 5., 1e+100 complex-konstanten schreibt man als Summe von (optionalem) Realteil und Imaginärteil mit imaginärer Einheit j: 4+2j, 2.3+1j, 2j, 5.1+0j float und complex unterstützen dieselben arithmetischen Operatoren wie die ganzzahligen Typen (außer Modulo bei komplexen Zahlen). Wir haben also: Grundrechenarten: +, -, *, /, // Potenz: ** Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 34 / 40

Ausdrücke Zahlen Rechnen mit float Python-Interpreter >>> print(1.23 * 4.56) 5.6088 >>> print(17 / 2.0) 8.5 >>> print(23.1 % 2.7) 1.5 >>> print(1.5 ** 100) 4.06561177535e+17 >>> print(10 ** 0.5) 3.16227766017 >>> print(4.23 ** 3.11) 88.6989630228 Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 35 / 40

Ausdrücke Zahlen Rechnen mit complex Python-Interpreter >>> print(2+3j + 4-1j) (6+2j) >>> 1+2j * 100 (1+200j) [Achtung, Punkt vor Strich!] >>> (1+2j) * 100 (100+200j) >>> print((-1+0j) ** 0.5) (6.12303176911e-17+1j) Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 36 / 40

Ausdrücke Zahlen Automatische Konversionen zwischen Zahlen Ausdrücke mit verschiedenen Typen wie 100 * (1+2j) oder (-1) ** 0.5 verhalten sich so, wie man es erwarten würde. Die folgenden Bedingungen werden der Reihe nach geprüft, die erste zutreffende Regel gewinnt: Ist einer der Operanden ein complex, so ist das Ergebnis ein complex. Ist einer der Operanden ein float, so ist das Ergebnis ein float. Ansonsten ist das Ergebnis ein int. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 37 / 40

Ausdrücke Zahlen Zusammenfassung Es ist gut, mehr als eine Programmiersprache zu lernen. Python ist imperativ und relativ einfach. Benutzung von Python Ausdrücke und Zahlen Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 38 / 40

Ausdrücke Zahlen Literatur I Allen Downey, Jeffrey Elkner, and Chris Meyers. How to Think Like a Computer Scientist: Learning With Python. Green Tea Press, 2002. Peter Kaiser and Johannes Ernesti. Python 3: Das umfassende Handbuch. Galileo Computing, 2009. Herbert Klaeren and Michael Sperber. Die Macht der Abstraktion. Teubner Verlag, 2007. Mark Lutz. Learning Python. O Reilly Media, 2009. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 39 / 40

Ausdrücke Zahlen Literatur II Alex Martelli. Python in a Nutshell. O Reilly Media, 2006. Alex Martelli, Anna Martelli Ravenscroft, and David Ascher. Python Cookbook. O Reilly Media, 2005. Mark Pilgrim. Dive Into Python 3. Apress, 2009. Jan-Georg Smaus (Universität Freiburg) Informatik I 16. Dezember 2010 40 / 40