Programmieren in Python
|
|
|
- Jörg Färber
- vor 9 Jahren
- Abrufe
Transkript
1 Kommentare und hello.py Programmieren in Python 4. Sequenzen: Strings, Tupel, Listen Malte Helmert Albert-Ludwigs-Universität Freiburg KI-Praktikum, Sommersemester 2009 hello.py # So langsam werden die Codebeispiele umfangreicher. # "Richtige" Programme stelle ich in diesem Stil hier # dar, nicht als Dialog mit dem. # # "Richtige" Programme sind komplizierter und muessen # daher auch mal kommentiert werden. Also sollte # ich sagen, wie man in Python kommentiert: # # Alles, was in einer Zeile auf ein Schweinegatter # (#) folgt, ist ein Kommentar. print "Hello, world" # Somit ist dies das beruehmte # "hello world"-programm. 1 / 42 2 / 42 Sequenzen Beispiel zu Sequenzen In dieser Lektion befassen wir uns mit Pythons Sequenztypen: Strings: str und unicode (Unveränderliche) Tupel: tuple (Veränderliche) Listen: list Außerdem lernen wir for-schleifen kennen. >>> first name = "Johann" >>> last name = Gambolputty >>> name = first name + " " + last name >>> print name Johann Gambolputty >>> print name.split() [ Johann, Gambolputty ] >>> primes = [2, 3, 5, 7] >>> print primes[1], sum(primes) 3 17 >>> squares = (1, 4, 9, 16, 25) >>> print squares[1:4] (4, 9, 16) 3 / 42 4 / 42
2 Strings Strings sind uns in kleineren Beispielen schon begegnet. Python unterscheidet zwischen zwei Arten von Strings: ASCII- bzw. Bytestrings entsprechen den Strings von C und C++ und haben den Typ str. Unicode-Strings entsprechen den Strings von Java und haben den Typ unicode. Wir beschränken uns zunächst auf Bytestrings und gehen auf Unicode später noch mal ein. Bytestrings werden meistens "auf diese Weise" angegeben. Später werden wir alternative Schreibweisen betrachten. Tupel und Listen Tupel sind uns kurz am Rande begegnet, Listen noch gar nicht. Tupel und Listen sind Container für andere Objekte. Sie sind grob vergleichbar mit Vektoren in C++/Java. Tupel werden in runden, Listen in eckigen Klammern notiert: (2, 1, "Risiko") vs. ["red", "green", "blue"]. Tupel und Listen können beliebige Objekte enthalten, natürlich auch andere Tupel und Listen: ([18, 20, 22, "Null"], [("spam", [])]) Der Hauptunterschied zwischen Tupeln und Listen: Listen sind veränderlich (mutable). Man kann Elemente anhängen, einfügen oder entfernen. Tupel sind unveränderlich (immutable). Ein Tupel ändert sich nie, es enthält immer dieselben Objekte in derselben Reihenfolge. (Allerdings können sich die enthaltenen Objekte verändern, z.b. bei Tupeln von Listen.) 5 / 42 6 / 42 Mehr zu Tupeln Mehr zu Tuple Unpacking Die Klammern um Tupel sind optional, sofern sie nicht gebraucht werden um Mehrdeutigkeiten aufzulösen: >>> mytuple = 2, 4, 5 >>> print mytuple (2, 4, 5) >>> mylist = [(1, 2), (3, 4)] # Klammern notwendig Achtung Anomalie: Einelementige Tupel schreibt man ("so",). So erklärt sich die früher gesehene simultane Zuweisung: Bei a, b = 2, 3 stehen links und rechts von der Zuweisung Tupel; daher der Name Tuple Unpacking. Tuple Unpacking funktioniert auch mit Listen und Strings und lässt sich sogar schachteln: >>> [a, (b, c), (d, e), f] = (42, (6, 9), "do", [1, 2, 3]) >>> print a, "*", b, "*", c, "*", d, "*", e, "*", f 42 * 6 * 9 * d * o * [1, 2, 3] 7 / 42 8 / 42
3 Sequenzen Sequenzen Mitgliedschaftstest: "yth" in "Python" Mitgliedschaftstest: "yth" in "Python" 9 / / 42 Verkettung Sequenzen >>> print "Gambol" + "putty" Gambolputty >>> mylist = ["spam", "egg"] >>> print ["spam"] + mylist [ spam, spam, egg ] >>> primes = (2, 3, 5, 7) >>> print primes + primes (2, 3, 5, 7, 2, 3, 5, 7) >>> print mylist + primes Traceback (most recent call last): File "<stdin>", line 1, in? TypeError: can only concatenate list (not "tuple") to list >>> print mylist + list(primes) [ spam, egg, 2, 3, 5, 7] Mitgliedschaftstest: "yth" in "Python" 11 / / 42
4 Wiederholung Sequenzen >>> print "*" * 20 ******************** >>> print [None, 2, 3] * 3 [None, 2, 3, None, 2, 3, None, 2, 3] >>> print 2 * ("parrot", ["is", dead"]) ( parrot, [ is, dead ], parrot, [ is, dead ]) 13 / / 42 Indizierung Sequenzen können von vorne und von hinten indiziert werden. Bei Indizierung von vorne hat das vorderste Element Index 0. Zur Indizierung von hinten verwendet man negative Indizes. Dabei hat das hinterste Element den Index 1. >>> primes = (2, 3, 5, 7, 11, 13) >>> print primes[1], primes[-1] 3 13 >>> animal = "parrot" >>> animal[-2] o >>> animal[10] Traceback (most recent call last): File "<stdin>", line 1, in? IndexError: string index out of range Wo sind die Zeichen? In Python gibt es keinen eigenen Datentyp für Zeichen (chars). Für Python ist ein Zeichen einfach ein String der Länge 1. >>> food = "spam" >>> food spam >>> food[0] s >>> type(food) <type str > >>> type(food[0]) <type str > >>> food[0][0][0][0][0] s 15 / / 42
5 Indizierung: Zuweisung an Indizes (1) Indizierung: Zuweisung an Indizes (2) Listen kann man per Zuweisung an Indizes verändern: >>> primes = [2, 3, 6, 7, 11] >>> primes[2] = 5 >>> print primes [2, 3, 5, 7, 11] >>> primes[-1] = 101 >>> print primes [2, 3, 5, 7, 101] Auch hier müssen die entsprechenden Indizes existieren. Tupel und Strings sind unveränderlich: >>> food = "ham" >>> food[0] = "j" Traceback (most recent call last): File "<stdin>", line 1, in? TypeError: object doesn t support item assignment >>> pair = (10, 3) >>> pair[1] = 4 Traceback (most recent call last): File "<stdin>", line 1, in? TypeError: object doesn t support item assignment 17 / / 42 Sequenzen Mitgliedschaftstest: Der in-operator ihre Instanzen als Sequenzen. Mitgliedschaftstest: "yth" in "Python" item in seq (seq ist Tupel oder Liste): Liefert True, wenn seq das Element item enthält. substring in string (string ist ein String): Liefert True, wenn string den Teilstring substring enthält. >>> print 2 in [1, 4, 2] True >>> if "spam" in ("ham", "eggs", "sausage"): print "tasty" >>> print "m" in "spam", "ham" in "spam", "pam" in "spam" True False True 19 / / 42
6 Sequenzen Slicing Mitgliedschaftstest: "yth" in "Python" Slicing ist das Ausschneiden von Scheiben aus einer Sequenz: >>> primes = [2, 3, 5, 7, 11, 13] >>> print primes[1:4] [3, 5, 7] >>> print primes[:2] [2, 3] >>> print "egg, sausage and bacon"[-5:] bacon 21 / / 42 Slicing: Erklärung Slicing: Erklärung (2) seq[i:j] liefert den Bereich [i, j), also die Elemente an den Positionen i, i + 1,..., j 1: ("do", "re", 5, 7)[1:3] == ("re", 5) Lässt man i weg, beginnt der Bereich an Position 0: ("do", "re", 5, 7)[:3] == ("do", "re", 5) Lässt man j weg, endet der Bereich am Ende der Folge: ("do", "re", 5, 7)[1:] == ("re", 5, 7) Lässt man beide weg, erhält man eine Kopie der gesamten Folge: ("do", "re", 5, 7)[:] == ("do", "re", 5, 7) Beim Slicing gibt es keine Index-Fehler: Bereiche jenseits des Endes der Folge sind einfach leer: >>> "spam"[2:10] am >>> "spam"[-6:3] spa >>> "spam"[7:] Auch beim Slicing kann man von hinten zählen. So erhält man die drei letzten Elemente einer Folge z.b. mit seq[-3:]. 23 / / 42
7 Slicing: Schrittweite Slicing: Zuweisungen an Slices (1) Beim sogenannten erweiterten Slicing kann man zusätzlich noch eine Schrittweite angeben: >>> zahlen = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> zahlen[1:7:2] [1, 3, 5] >>> zahlen[1:8:2] [1, 3, 5, 7] >>> zahlen[7:2:-1] [7, 6, 5, 4, 3] >>> zahlen[::-1] [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] Bei Listen kann man auch Slice-Zuweisungen durchführen, d.h. einen Teil einer Liste durch eine andere Sequenz ersetzen: >>> dish = ["ham", "sausage", "eggs", "bacon"] >>> dish[1:3] = ["spam", "spam"] ["ham", "spam", "spam", "bacon"] >>> dish[:1] = ["spam"] ["spam", "spam", "spam", "bacon"] 25 / / 42 Slicing: Zuweisungen an Slices (2) Die zugewiesene Sequenz muss nicht gleich lang sein wie der zu ersetzende Bereich. Beide dürfen sogar leer sein: ["spam", "spam", "spam", "bacon"] >>> dish[1:4] = ["baked beans"] ["spam", "baked beans"] >>> dish[1:1] = ["sausage", "spam", "spam"] ["spam", "sausage", "spam", "spam", "baked beans"] >>> dish[2:4] = [] ["spam", "sausage", "baked beans"] Slicing und Listen: Die del-anweisung Statt einem Slice eine leere Sequenz zuzuweisen, kann man auch die del-anweisung verwenden, die einzelne Elemente oder Slices enfernt: >>> primes = [2, 3, 5, 7, 11, "spam", 13] >>> del primes[-2] >>> primes [2, 3, 5, 7, 11, 13] >>> months = ["april", "may", "grune", "sectober", "june"] >>> del months[2:4] >>> months [ april, may, june ] Bei Slices mit Schrittweite muss beides gleich lang sein. 27 / / 42
8 Sequenzen Iteration Zum Durchlaufen von Sequenzen verwendet man for-schleifen: >>> primes = [2, 3, 5, 7] >>> product = 1 >>> for number in primes: product = product * number print product / / 42 Iteration (2) Iteration: Mehrere Schleifenvariablen for funktioniert mit allen Sequenztypen: >>> for character in "spam": print character * 2 ss pp aa mm >>> for ingredient in ("spam", "spam", "egg"): if ingredient == "spam": print "tasty!" tasty! tasty! Wenn man eine Sequenz von Sequenzen durchläuft, kann man mehrere Schleifenvariablen gleichzeitig binden: >>> couples = [("Justus", "Lys"), ("Peter", "Kelly"), ("Bob", "Liz")] >>> for x, y in couples: print x, "ist cool;", y, "nervt." Justus ist cool; Lys nervt. Peter ist cool; Kelly nervt. Bob ist cool; Liz nervt. Dies ist ein Spezialfall des früher gesehenen Tuple Unpacking. 31 / / 42
9 break, continue, else break, continue und else: Beispiel Im Zusammenhang mit Schleifen sind die folgenden drei Anweisungen interessant: break beendet eine Schleife vorzeitig. continue beendet die aktuelle Schleifeniteration vorzeitig, d.h. springt zum Schleifenkopf und setzt die Schleifenvariable(n) auf den nächsten Wert. Außerdem können Schleifen (so wie if-abfragen) einen else-zweig aufweisen. Dieser wird nach Beendigung der Schleife ausgeführt, und zwar genau dann, wenn die Schleife nicht mit break verlassen wurde. break, continue und else funktionieren genauso bei den bereits gesehenen while-schleifen. break-continue-else.py foods_and_amounts = [("sausage", 2), ("eggs", 0), ("spam", 2), ("ham", 1)] for food, amount in foods_and_amounts: if amount == 0: continue if food == "spam": print amount, "tasty piece(s) of spam." break else: print "No spam!" # Ausgabe: # 2 tasty piece(s) of spam. 33 / / 42 Listen während der Iteration ändern Listen während der Iteration ändern (2) Innerhalb einer Schleife sollte das durchlaufene Objekt nicht seine Größe ändern. Ansonsten kommt es zwar nicht zu Abstürzen wie evtl. in C++, aber doch zu verwirrenden Ergebnissen: >>> numbers = [3, 5, 7] >>> for n in numbers: print n if n == 3: del numbers[0] 3 7 >>> print numbers [5, 7] Abhilfe kann man schaffen, indem man eine Kopie der Liste durchläuft: >>> numbers = [3, 5, 7] >>> for n in numbers[:]: print n if n == 3: del numbers[0] >>> print numbers [5, 7] 35 / / 42
10 Nützliche Funktionen im Zusammenhang mit for-schleifen range und xrange Einige builtins tauchen häufig im Zusammenhang mit for-schleifen auf und sollen hier nicht unerwähnt bleiben: range und xrange enumerate zip range erzeugt Listen von ints: range(stop) ergibt [0, 1,..., stop-1] range(start, stop) ergibt [start, 1,..., stop-1] range(start, stop, step) ergibt [start, start + step, start + 2 * step,..., stop-1] xrange funktioniert wie range, liefert aber keine richtige Liste, sondern ein Objekt von einem speziellen Typ, der (mehr oder weniger) ausschließlich für Schleifendurchläufe gedacht ist. xrange spart gegenüber range Speicherplatz, da keine Liste angelegt wird. 37 / / 42 range und xrange: Beispiele enumerate >>> range(5) [0, 1, 2, 3, 4] >>> range(3, 30, 10) [3, 13, 23] >>> for i in xrange(3, 7): print i, "** 3 =", i ** 3 3 ** 3 = 27 4 ** 3 = 64 5 ** 3 = ** 3 = 216 Manchmal möchte man beim Durchlaufen einer Sequenz wissen, an welcher Position man gerade ist. Dazu dient die Funktion enumerate, die eine Sequenz als Argument erhält und eine Folge von Paaren (index, element) liefert: >>> for i, char in enumerate("egg"): print "An Position", i, "steht ein", char An Position 0 steht ein e. An Position 1 steht ein g. An Position 2 steht ein g. Auch enumerate erzeugt keine richtige Liste, sondern ist vornehmlich für for-schleifen gedacht. Genauer gesagt liefert enumerate einen Iterator. Iteratoren behandeln wir später. 39 / / 42
11 zip (1) zip (2) Die Funktion zip nimmt ein oder mehrere Sequenzen und liefert eine Liste von Tupeln mit korrespondierenden Elementen: >>> detectives = ["Justus", "Peter", "Bob"] >>> girlfriends = ["Lys", "Kelly", "Liz"] >>> print zip(detectives, girlfriends) [( Justus, Lys ), ( Peter, Kelly ), ( Bob, Liz )] zip liefert eine richtige Liste. Besonders nützlich ist zip, um mehrere Sequenzen parallel zu durchlaufen: >>> for x, y, z in zip("ham", "spam", range(5, 10)): print x, y, z h s 5 a p 6 m a 7 Sind die Eingabesequenzen unterschiedlich lang, ist das Ergebnis so lang wie die kürzeste Eingabe. 41 / / 42
1 Sequenzen. Informatik I: Einführung in die Programmierung 10. Sequenzen, for-schleifen, Objekte und Identität. Beispiel zu Sequenzen.
1 Informatik I: Einführung in die Programmierung 10., for-schleifen, Albert-Ludwigs-Universität Freiburg Bernhard Nebel 10. November 2017 10. November 2017 B. Nebel Info I 3 / 62 Beispiel zu Wir beschäftigen
Algorithmen und Datenstrukturen
Algorithmen und Datenstrukturen A2. Eine sehr kurze Einführung in Python Marcel Lüthi and Gabriele Röger Universität Basel 28. Februar 2018 Python Python interpretierte High-Level-Programmiersprache unterstützt
A2.1 Python. Algorithmen und Datenstrukturen. Algorithmen und Datenstrukturen. A2.1 Python. A2.2 Kurzer Sprachüberblick. A2.3 Selectionsort in Python
Algorithmen und Datenstrukturen 28. Februar 2018 A2. Eine sehr kurze Einführung in Python Algorithmen und Datenstrukturen A2. Eine sehr kurze Einführung in Python A2.1 Python Marcel Lüthi and Gabriele
Einführung in Python. Übung zur Vorlesung NLP Beate Krause, Dominik Benz NLP-Übung: Einführung in Python 1
Einführung in Python Übung zur Vorlesung NLP Beate Krause, Dominik Benz 22.04.2008 23.04.2008 NLP-Übung: Einführung in Python 1 Ablauf der Übung Klärung von aktuellen Fragen zur Vorlesung Kurze Einführung
4 Daten in Python. Primäres Ziel: Daten zu Containern zusammenfassen, insbesondere Vektoren etc., um vernünftige Beispiele rechnen zu können.
4 Daten in Python Primäres Ziel: Daten zu Containern zusammenfassen, insbesondere Vektoren etc., um vernünftige Beispiele rechnen zu können. Vorher genauerer Blick auf die Behandlung von Daten in Python
Programmieren in Python
3. Variablen, Funktionen und Bedingungen Albert-Ludwigs-Universität Freiburg KI-Praktikum, Sommersemester 2009 Variablen, Funktionen und Bedingungen Bisher sind wir über die Funktionen eines Taschenrechners
PYTHON. 03 for-schleifen, Funktionen
PYTHON 03 for-schleifen, Funktionen for-schleife kann verwendet werden, um eine bestimmte Anzahl an Wiederholungen durchzuführen kann verwendet werden, um ein bestimmtes Objekt (z.b. eine Liste) zu durchlaufen
Programmieren in Python
Iteratoren und Generatoren Programmieren in Python 10. Iteratoren und Generatoren Malte Helmert Albert-Ludwigs-Universität Freiburg Überblick über diese Lektion: Iteratoren Generatoren Generator Comprehensions
Programmierkurs Python I
Programmierkurs Python I Michaela Regneri & Stefan Thater Universität des Saarlandes FR 4.7 Allgemeine Linguistik (Computerlinguistik) Winter 2010/11 Übersicht Kurze Wiederholung: while Sammeltypen (kurz
Programmieren in Python
3. Variablen, Funktionen und Bedingungen Albert-Ludwigs-Universität Freiburg Handlungsplanungs-Praktikum Wintersemester 2010/2011 Variablen, Funktionen und Bedingungen Bisher sind wir über die Funktionen
Programmieren in Python
10. Iteratoren und Generatoren Albert-Ludwigs-Universität Freiburg KI-Praktikum, Sommersemester 2009 Iteratoren und Generatoren Überblick über diese Lektion: Iteratoren Generatoren Generator Comprehensions
Programmieren in Python
Ausgaben und Zahlen Programmieren in Python 2. Ausgaben und Zahlen Malte Helmert Albert-Ludwigs-Universität Freiburg In dieser Lektion geht es darum, ein erstes Gefühl für Python zu bekommen. Wir beschränken
Informatik I. Informatik I Iteratoren Generatoren Das Modul itertools. Iterierbare Objekte Iteratoren. Python-Interpreter
Informatik I 28.01.2014 25. und Informatik I 25. und Bernhard Nebel Albert-Ludwigs-Universität Freiburg 25.1 25.2 25.3 Das Modul itertools 28.01.2014 Bernhard Nebel (Universität Freiburg) Informatik I
Funktionen in Python
Funktionen in Python Prof. Dr. Rüdiger Weis Beuth Hochschule für Technik Berlin 1 / 31 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente
Funktionen in Python
October 19, 2006 1 def Anweisung 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung def def funktionsname([]) : [ Dokumentationsstring
Anweisungen in Python
Sommersemester 2007 1 if 2 elif 3 while 4 for 5 Schleifenabbruch Blockbildung Blockbildung durch Einrücken Keine Klammerung Empfehlungen Leerzeichen verwenden 4 Leerzeichen einrücken Unterstützenden Editor
Programmieren in Python 3. Variablen, Funktionen und Bedingungen
Variablen, Funktionen und Bedingungen Programmieren in Python 3. Variablen, Funktionen und Bedingungen Robert Mattmüller Albert-Ludwigs-Universität Freiburg Handlungsplanungs-Praktikum Wintersemester 2010/2011
1 def Anweisung. 2 Argumentübergabe. 3 Lokale Variablen. 4 Default Argumente. 5 Aufruf mit Schlüsselwort. 6 Variable Argumente. Funktionen in Python
1 def Anweisung Sommersemester 2007 2 Argumentübergabe 3 Lokale Variablen 4 Default Argumente 5 Aufruf mit Schlüsselwort 6 Variable Argumente def Anweisung Beispiel: TuNix def def funktionsname([])
Programming 101. Carl Herrmann IPMB & DKFZ
Programming 101 Carl Herrmann IPMB & DKFZ Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben Gemeinsamkeiten Alle Programmiersprachen
WS2017/ Oktober 2017
Einführung in die Programmierung Ronja Düffel WS2017/18 09. Oktober 2017 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen
Informatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2017 1 und der Typ bool Typ bool Typ bool Vergleichsoperationen
Programmieren in Python
10. Iteratoren und Generatoren Albert-Ludwigs-Universität Freiburg Handlungsplanungs-Praktikum Wintersemester 2010/2011 Iteratoren und Generatoren Überblick über diese Lektion: Iteratoren Generatoren Generator
WS2017/ Oktober 2017
Ronja Düffel WS2017/18 05. Oktober 2017 mit Python Programmieren (vereinfacht) 1 Problem beschreiben und analysieren 2 Enwicklung und Beschreibung einer Lösung 3 Übertragung/Umsetzung in eine Programmiersprache
Informatik I. Informatik I Dictionaries Mengen Dictionaries. Dictionaries. 11. Dictionaries & Mengen.
Informatik I 19. November 2013 11. & Informatik I 11. & Bernhard Nebel 11.1 11.2 Albert-Ludwigs-Universität Freiburg 19. November 2013 Bernhard Nebel (Universität Freiburg) Informatik I 19. November 2013
3. Anweisungen und Kontrollstrukturen
3. Kontrollstrukturen Anweisungen und Blöcke 3. Anweisungen und Kontrollstrukturen Mit Kontrollstrukturen können wir den Ablauf eines Programmes beeinflussen, z.b. ob oder in welcher Reihenfolge Anweisungen
Python Einführung. Monica Selva Soto. 24 März Mathematisches Institut
Mathematisches Institut [email protected] 24 März 2009 Übungen zur Numerik 1 Vorlesung Übungen praktische Aufgaben Webseite: (Anmeldung, Übungsblätter) http://www.mi.uni-koeln.de/~mselva/numerik1.php
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? weit verbreitet einfach und (relativ) sicher keine Pointer (?) keine gotos kein Präprozessor keine globalen Variablen garbage collection objekt-orientiert
1 Bedingungen und der Typ bool. Informatik I: Einführung in die Programmierung 5. Bedingungen, bedingte Ausführung und Schleifen. Vergleichsoperatoren
1 und der Informatik I: Einführung in die Programmierung 5., bedingte Ausführung und Albert-Ludwigs-Universität Freiburg Bernhard Nebel 27. Oktober 2015 27. Oktober 2015 B. Nebel Info I 3 / 21 Der Vergleichsoperatoren
WS2018/ Oktober 2018
Einführung in die Programmierung Ronja Düffel WS2018/19 02. Oktober 2018 RBI-Account Account für das Rechnernetz der Informatik RBI-Account HRZ-Account zum Arbeiten an und auf den Rechnern des Instituts
Informatik I: Einführung in die Programmierung 3. Werte, Typen, Variablen und Ausdrücke
Informatik I: Einführung in die Programmierung 3. Werte,, n und Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 30. Oktober 2018 P. Thiemann Info I 3 / 39 Bits Der Computer repräsentiert
JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)
JAVA BASICS 2. Primitive Datentypen 1. Warum Java? zunehmend weit verbreitet einfach und (relativ) sicher keine Adressrechnung, aber Pointer keine gotos kein Präprozessor keine globalen Variablen garbage
Nachtrag: Vergleich der Implementierungen von Stack
Nachtrag: Vergleich der Implementierungen von Stack In der letzten Vorlesung hatten wir zwei Implementierung der Klasse Stack: eine Implementierung als Liste (Array): liststack eine Implementierung als
Informatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 5., bedingte Ausführung Albert-Ludwigs-Universität Freiburg Peter Thiemann 30. Oktober 2018 1 und der Typ bool Typ bool Typ bool Vergleichsoperationen Logische
Programmiertechnik Kontrollstrukturen
Programmiertechnik Kontrollstrukturen Prof. Dr. Oliver Haase Oliver Haase Hochschule Konstanz 1 Was sind Kontrollstrukturen? Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,
Quick-Start Informatik Programmieren in Python Teil 2
Quick-Start Informatik 2011 Programmieren in Python Teil 2 Organisatorisches Self-Assessment-Bögen Aufgabenblätter! Rückblick 1. Programmieren: Wie geht das? (IDLE, REPL,.py-Dateien) 2. Daten und Datentypen
Python Intro. Vorsemesterkurs Informatik Praktischer Teil WS2012/13. 2.Oktober Vorkurs Informatik - WS 2012/13
Python Intro Vorsemesterkurs Informatik Praktischer Teil WS2012/13 2.Oktober 2012 Let's get started } Skript, Übungen, Folien... Alles zum Praxisteil auf http://vorkurs.cs.unifrankfurt.de Bücher: Fragen!
2 Teil 2: Nassi-Schneiderman
2 Teil 2: Nassi-Schneiderman Wie kann man Nassi-Schneiderman in einer objektorientierten Sprache verwenden? Jedes Objekt besitzt Methoden, welche die Attribute des Objektes verändern. Das Verhalten der
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer. Programmiertechnik Kontrollstrukturen
Prof. Dr. Oliver Haase Karl Martin Kern Achim Bitzer Programmiertechnik Kontrollstrukturen Was sind Kontrollstrukturen Kontrollstrukturen erlauben es, ein Programm nicht nur Zeile für Zeile auszuführen,
Martin Unold INFORMATIK. Geoinformatik und Vermessung
Wiederholung So sieht ein leeres Java-Programm aus public class Programmname { public static void main (String[] args) { // Hier stehen die Anweisungen Anweisungen mit Variablen Wiederholung Deklaration
Informatik I: Einführung in die Programmierung
Informatik I: Einführung in die Programmierung 7., While-, Hilfsfunktionen und Akkumulatoren Albert-Ludwigs-Universität Freiburg Peter Thiemann 13. November 2018 1 13. November 2018 P. Thiemann Info I
Brückenkurs Programmieren
Brückenkurs Programmieren Verzweigungen, Operatoren, Schleifen, Arrays Christopher Schölzel Technische Hochschule Mittelhessen 01.10.2013 Christopher Schölzel (THM) Brückenkurs Programmieren 01.10.2013
12 == 12 true 12 == 21 false 4 === 7 true 4 === "vier" false 4 === 4.0 false 12!= 13 true 12!== 12 false 12!== 12.0 true. 1 < 3 true 3 < 1 false
Die if-anweisung if (Bedingung 1) { Code 1 else { Code 2 ; Anm.1: Das ; kann entfallen, da innerhalb { ein sog. Codeblock geschrieben wird. Anm.2: Es gibt noch andere Schreibweisen, aber wir wollen uns
Einführung in die Programmierung Wintersemester 2011/12
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund : Kontrollstrukturen Inhalt Wiederholungen - while
Schleifen in C/C++/Java
Schleifen in C/C++/Java Alle 3 Sprachen stellen mindestens die folgenden 3 Schleifenkonstruktionen zur Verfügung. In C gibt es auch keine weiteren, C++, Java und C# haben noch weitere nützliche Varianten.
Python Intro I. Vorsemesterkurs Informatik Praktischer Teil WS 2013/14. 1.Oktober Vorkurs Informatik - WS 2013/14
Python Intro I Vorsemesterkurs Informatik Praktischer Teil WS 2013/14 1.Oktober 2013 Let's get started } Skript, Übungen, Folien... Alles zum Praxisteil auf http://vorkurs.cs.unifrankfurt.de Bücher: Fragen!
Objektorientierte Programmierung OOP Programmieren mit Java
Übungen: 6 Schleifen Objektorientierte Programmierung OOP Programmieren mit Java 1. do-schleife 2. while-schleife 3. a) c) Verschiedene for-schleifen 6 Schleifen Übungen 4. for-schleife: halber Tannenbaum
Vorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 09.11.2016 Jun.-Prof. Dr.-Ing. Anne Koziolek Version 1.1 ARBEITSGRUPPE ARCHITECTURE-DRIVEN REQUIREMENTS ENGINEERING (ARE) INSTITUT FÜR PROGRAMMSTRUKTUREN UND
Programmieren in Python 7. Dictionaries, Mengen & Dateien
Dictionaries, Mengen & Dateien Programmieren in Python 7. Dictionaries, Mengen & Dateien Robert Mattmüller Albert-Ludwigs-Universität Freiburg In dieser Lektion befassen wir uns mit weiteren wichtigen
Arbeitsblätter für Algorithmierung und Strukturierung
Prof. Dr.- Ing. Ch. Wahmkow Fachbereich Maschinenbau Fachhochschule Stralsund Arbeitsblätter für Algorithmierung und Strukturierung Inhalt : Struktogramme, Beispiele und Erläuterungen - Sequenz - vollständige
Grundlagen. Felix Döring, Felix Wittwer 24. April Python-Kurs
Grundlagen Felix Döring, Felix Wittwer 24. April 2017 Python-Kurs Gliederung 1. Über diesen Kurs 2. Der Python Interpreter 3. Python Scripte 4. Grundlagen der Sprache 5. Das erste Programm 6. Operatoren
Vorlesung Programmieren
Vorlesung Programmieren 3. Kontrollstrukturen 04.11.2015 Prof. Dr. Ralf H. Reussner Version 1.1 LEHRSTUHL FÜR SOFTWARE-DESIGN UND QUALITÄT (SDQ) INSTITUT FÜR PROGRAMMSTRUKTUREN UND DATENORGANISATION (IPD),
Einführung in die Programmierung
: Inhalt Einführung in die Programmierung Wintersemester 2017/18 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund Wiederholungen - while - do-while - for
Algorithmen und Programmieren II Einführung in Python (Teil 2)
Einführung in Python Algorithmen und Programmieren II Einführung in Python (Teil 2) SS 2012 Prof. Dr. Margarita Esponda ALP II: Margarita Esponda, 2. Vorlesung, 17.4.2012 1 Variablen in Python Variablen
S. d. I.: Programieren in C Folie 4-1. im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then"
S. d. I.: Programieren in C Folie 4-1 4 Anweisungen 4.1 if-anweisung 1) if (Ausdruck) 2) if (Ausdruck) } else im Gegensatz zu Pascal gibt es in C kein Schlüsselwort "then" es wird nur der numerische Wert
Programmieren in Java
Programmieren in Java Vorlesung 02: Methoden Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 17 Inhalt Scanner
Programmierkurs Python I
Programmierkurs Python I Michaela Regneri 2009-11-05 (Folien basieren auf dem gemeinsamen Kurs mit Stefan Thater) Übersicht Variablen Datentypen Werte Operatoren und Ausdrücke Kontrollstrukturen: if, while
Gedächtnis. Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet. Zugriff.
Gedächtnis Während der Abarbeitung eines Algorithmus müssen sich Dinge gemerkt werden bzw. auf Dingen wird gerechnet Hauptspeicher 38265 Telefon CPU Gedächtnis Vorlesender Zugriff Verarbeitungseinheit
Einstieg in die Informatik mit Java
1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,
Python für Linguisten
Python für Linguisten Dozentin: Wiebke Petersen & Co-Dozentin: Esther Seyarth 5. Foliensatz sequentielle Datentypen, Dictionaries Petersen & Seyarth Python 1 Sequentielle Datentypen Tupel, Listen und Strings
1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.
Themen der Übung Kontrollstrukturen, Pseudocode und Modulo-Rechnung CoMa-Übung III TU Berlin 9.10.01 1 Bedingte Anweisungen Vergleiche und logische Operatoren 3 Fallunterscheidungen 4 Zeichen und Zeichenketten
Einstieg in die Informatik mit Java
1 / 41 Einstieg in die Informatik mit Java Weitere Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 41 1 Überblick 2 Verbundanweisung 3 Bedingte Anweisung 4 Auswahlanweisung
Arithmetik in der tcsh
Arithmetik in der tcsh Variablen speichern Zeichenketten (also Strings/Wörter) @ statt set Interpretation als arithmetische Ausdrücke (aus Ziffern, (, ), +, -, *, /, % bestehend) Beispiele: @ var = (3
Javakurs FSS Lehrstuhl Stuckenschmidt. Tag 1 - Variablen und Kontrollstrukturen
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt Tag 1 - Variablen und Kontrollstrukturen main Methode Startpunkt jeder Java Anwendung String[] args ist ein Array aus Parametern, die beim Aufruf über die Kommandozeile
Tag 3 Repetitorium Informatik (Java)
Tag 3 Repetitorium Informatik (Java) Dozent: Marius Kamp Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Typkonvertierung
Algorithmik und Programmieren
Institut für Informatik Forschungsgruppe Datenbanken und Informationssysteme (DBIS) Universität Innsbruck Algorithmik und Programmieren Martin Pichl Datenbanken und Informationssysteme (DBIS) dbis.uibk.ac.at
Java Anweisungen und Ablaufsteuerung
Informatik 1 für Nebenfachstudierende Grundmodul Java Anweisungen und Ablaufsteuerung Kai-Steffen Hielscher Folienversion: 24. Januar 2017 Informatik 7 Rechnernetze und Kommunikationssysteme Inhaltsübersicht
Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 25
Kapitel 9 Schleifen Seite 1 von 25 Schleifen - Schleifen werden zur wiederholten Ausführung von Anweisungen verwendet. - Es werden drei Arten von Schleifen unterschieden: o for -Schleife o while -Schleife
Aufgabe 1.1. Wählen Sie jene Variablendeklarationen mit Initialisierungen aus, die in Java hinsichtlich der Typen korrekt sind:
Test 1 in Programmkonstruktion 59 / 100 Punkte 1. Multiple-Choice-Aufgaben 20 / 30 Punkte Bitte wählen Sie alle zutreffenden Antwortmöglichkeiten aus. Es können beliebig viele Antwortmöglichkeiten zutreffen,
WS2018/ Oktober 2018
Einführung in die Programmierung Ronja Düffel WS2018/19 05. Oktober 2018 Rückblick Datentypen bool Zahlen (int und float) string Variablen Kontrollstrukturen Verzweigungen (if...: und if...else:) Schleifen
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays)
1. Erste Schritte 2. Einfache Datentypen 3. Anweisungen und Kontrollstrukturen 4. Verifikation 5. Reihungen (Arrays) II.1.3. Anweisungen und Kontrollstrukturen - 1 - Anweisung Anweisung Zuweisung Methodenaufruf
Algorithmik und Programmieren
Institut für Informatik Forschungsgruppe Datenbanken und Informationssysteme (DBIS) Universität Innsbruck Algorithmik und Programmieren Martin Pichl Datenbanken und Informationssysteme (DBIS) dbis.uibk.ac.at
Vorkurs Informatik WiSe 16/17
Java Schleifen und Arrays Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 06.10.2016 Technische Universität Braunschweig, IPS Überblick Kommentare Typen Kontrollstrukturen Arrays 06.10.2016 Dr. Werner
Tag 2 Repetitorium Informatik (Java)
Tag 2 Repetitorium Informatik (Java) Dozent: Daniela Novac Lehrstuhl für Informatik 2 (Programmiersysteme) Friedrich-Alexander-Universität Erlangen-Nürnberg Wintersemester 2017/2018 Übersicht Zeichen und
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny
Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny 5. Kontrollstrukturen Allgemein Kontrollstrukturen dienen zur Steuerung des Programmablaufs. (Bemerkung: C und C++ besitzen die selben Kontrollstrukturen.)
4.4 Imperative Algorithmen Verzweigung und Iteration
Eine weitere bedingte Schleife kann in Java mit dem Schlüsselwort for definiert werden: for (; i ; ) Alle drei Bestandteile im Schleifenkopf sind Ausdrücke
JavaScript. Dies ist normales HTML. Hallo Welt! Dies ist JavaScript. Wieder normales HTML.
JavaScript JavaScript wird direkt in HTML-Dokumente eingebunden. Gib folgende Zeilen mit einem Texteditor (Notepad) ein: (Falls der Editor nicht gefunden wird, öffne im Browser eine Datei mit der Endung
