Programming 101. Carl Herrmann IPMB & DKFZ

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

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

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

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Übungszettel 2a - Python

Kontrollstrukturen. Verzweigungen Einfache Mehrfache Wiederholungen Eine Sequenz durchlaufen Wiederhole bis Solange. Tue

Algorithmik und Programmieren

Informatik I: Einführung in die Programmierung

WS2018/ Oktober 2018

Einführung in Python. Übung zur Vorlesung NLP Beate Krause, Dominik Benz NLP-Übung: Einführung in Python 1

Bash-Skripting Linux-Kurs der Unix-AG

PROCESSING EINE ZUSAMMENFASSUNG. Created by Michael Kirsch & Beat Rossmy

Vorkurs Informatik WiSe 16/17

Quick-Start Informatik Programmieren in Python Teil 1

Einführung in die Computerlinguistik

JAVA-Datentypen und deren Wertebereich

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

Schleifen in C/C++/Java

Vorkurs Informatik WiSe 17/18

Übersicht Shell-Scripten

Einführung in die Programmierung mit VBA

Crashkurs Python und Sage U23 Krypto-Mission

WS2017/ Oktober 2017

Übersicht PERL. !!!! Wichtig: Nach dem Befehl einem Strichpunkt setzen!!!!

float: Fließkommazahl nach IEEE 754 Standard mit 32 bit

Algorithmen und ihre Programmierung

Organisatorisches. Folien (u.a.) gibt's auf der Lva-Homepage zum Download

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

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

Java Übung. Übung 2. Werner Gaulke. 19. April Universität Duisburg-Essen Kommedia, Übung EinPro SS06, Einführung in Java - Übung.

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

Python für Linguisten

Einführung Java Programmieren in Java Arrays Schleifen Fehler. Einführung in Java. Arne Hüffmeier. Michelle Liebers, Dennis Hoffmann

hue12 January 24, 2017

Welche Informatik-Kenntnisse bringen Sie mit?

1 Bedingte Anweisungen. 2 Vergleiche und logische Operatoren. 3 Fallunterscheidungen. 4 Zeichen und Zeichenketten. 5 Schleifen.

Javakurs für Anfänger

Kapitel 3: Variablen

Bash-Skripting Linux-Kurs der Unix-AG

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

2 Programmieren in Java I noch ohne Nachbearbeitung

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Programmierkurs Python I

Arrays. Theorieteil. Inhaltsverzeichnis. Begriffe. Programmieren mit Java Modul 3. 1 Modulübersicht 3

FACHHOCHSCHULE AUGSBURG Hochschule für Technik, Wirtschaft und Gestaltung

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

Python Workshop i. Python Workshop

3.3 Entwurf von Datentypen

Java Spickzettel von Panjutorials.de

Erste Java-Programme (Scopes und Rekursion)

Programmieren I. Kapitel 5. Kontrollfluss

Einführung in die Programmierung für NF. Übung

Computerphysik II. Python Einführung. S. Gerlach. WiSe S. Gerlach Computerphysik II

Algorithmik und Programmieren

Organisatorisches. Folien (u.a.) auf der Lva-Homepage Skriptum über MU Online

Martin Unold INFORMATIK. Geoinformatik und Vermessung

Martin Unold INFORMATIK. Geoinformatik und Vermessung

PostScript -Sprache. Frank Richter

Schleifen in C/C++/Java

Programmierstil. Objektsammlungen. Konzepte. Zwischenspiel: Einige beliebte Fehler... Variablennamen Kommentare Layout Einrückung

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Wirtschaftsinformatik I (Bachelor) SS 07 Prof. Gomber. Python

JAVA BASICS. 2. Primitive Datentypen. 1. Warum Java? a) Boolean (logische Werte wahr & falsch)

JavaScript und PHP-Merkhilfe

Nachtrag: Vergleich der Implementierungen von Stack

Einführung in die Programmiersprache Julia Vorlesung Computerphysik Sommersemester 2018 Ralf Bulla Universität zu Köln

Programmiereinführung Python Vorlesung zu Modul 1B. Anwendungsnahes Programmieren, FS19 Dr. Lukas Fässler Departement Informatik, ETH Zürich

Algorithmen und Programmieren II Einführung in Python (Teil 2)

Herzlich Willkommen. Über mich Termine Literatur Über PHP

Vorkurs Informatik WiSe 16/17

Shell. Oder Konsole suchen im Application Finder. Auch Terminal, Bash oder Kommandozeile genannt. Bash nimmt Befehle entgegen und führt diese aus

Informatik II. Woche 10, Giuseppe Accaputo

Unterlagen. CPP-Uebungen-08/

Programmieren in Python

Kontrollstrukturen und Logik

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

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

Brückenkurs Programmieren

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Angewandte Mathematik und Programmierung

Modellierung und Programmierung 1

Grundlagen der Programmierung

Programmieren in Python

Funktionen nur wenn dann

Vorbemerkung. Allgemeines zu Shell Scripts. Aufruf. Einfaches Beispiel

Informatik I Übung, Woche 40

ECDL MODUL COMPUTING. Syllabus Version 1.0

IoT-Werkstatt Das Internet der Dinge anfassbar machen Algorithmisches Denken

Informatik I Übung, Woche 40

Bedingte Anweisungen

Einführung in die Programmierung für NF MI. Übung 04

Java I Vorlesung Imperatives Programmieren

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

Algorithmen und Datenstrukturen (für ET/IT)

Transkript:

Programming 101 Carl Herrmann IPMB & DKFZ

Programmieren Kommandozeile Einfache Befehle Shell Skript aneinanderketten von Befehlen Schleifen Programmiersprache Komplexere Aufgaben

Gemeinsamkeiten Alle Programmiersprachen benutzen zum grossen Teil die gleichen Syntaxelemente Variablen Schleifen Kontrolstrukturen "wiederhole " Funktionen "wenn dann sonst "

Struktur eines Programms print "Mein erstes Program" Befehle die nacheinander ausgeführt werden von = 1 bis = 20 if bis < von : print "Das Ende ist kleiner als der Anfang!" else: for i in range(von,bis) : print(i) print "Fertig mit Zaehlen!!"

Struktur eines Programms eine Zeichenkette anzeigen print "Mein erstes Program" von = 1 bis = 20 if bis < von : print "Das Ende ist kleiner als der Anfang!" einer Variablen einen Wert zuweisen else: for i in range(von,bis) : print(i) print "Fertig mit Zaehlen!!"

Struktur eines Programms einen Test durchführen print "Mein erstes Program" von = 1 bis = 20 if bis < von : wenn ja print "Das Ende ist kleiner als der Anfang!" else: wenn nein for i in range(von,bis) : print(i) print "Fertig mit Zaehlen!!"

Struktur eines Programms etwas wiederholen («Schleife») print "Mein erstes Program" von = 1 bis = 20 if bis < von : print "Das Ende ist kleiner als der Anfang!" else: for i in range(von,bis) : print(i) print "Fertig mit Zaehlen!!"

Struktur eines Programms Befehle: print "Mein Program" Operationen mit Variablen i=i+1 Kontrollbefehle if bis < von :... else :... Schleifen for I in range(von,bis) :...

Befehlsblöcke Befehle, die zusammen ausgeführt werden bilden einen Befehlsblock In manchen Sprachen werden diese Blöcke durch { } begrenzt Perl in Python werden die Blöcke durch Einrücken markiert. if bis < von : print "Das Ende ist kleiner als der Anfang!" Block Unter-Block else: for i in range(von,bis) : print(i) print "Fertig mit Zaehlen!!"

Ein Programm ausführen Entweder interaktiv in ipython ausführen oder mit dem Befehl python mein_skript.py

Variablen Variablen sind Speicherplatz im Hauptspeicher des Computers, die verschiedene Werte enthalten können (Zahlen, Zeichenketten, logische Werte,...) Eine Variable hat einen Namen einen Typ (numerisch, Zeichenkette, logisch, ) einen Inhalt True Abel i Typ = boolean Name Typ = string

Variablen In Python unterscheidet man nicht zwischen Namen der Variablen und Inhalt ; in Bash wird unterschieden Python i = 3 print i Name Inhalt Bash i = 3 echo $i

Variablen und Methoden In Python sind Variablen Objekte Inhalt Eigenschaften Methoden Abel Inhalt Methoden/ Eigenschaften Jeder Typ von Variablen hat eigene Methoden Name dna = "ACCGATT" print(dna) dna.islower() dna.lower() # ACCGATT # false # accgatt Inhalt Eigenschaft Methode

Einfache Variablen eine Variable kann numerische Werte oder Zeichenketten enthalten i = 3 # Typ : integer i = 3.2 # Typ : float i = 'Hello World!' # Typ : string (einfache oder # doppelte Ausführungszeichen das "=" Zeichen dient dazu, einer Variablen einen Wert zuzuordnen i = 2 i = j # Variable i nimmt den Wert der Variablen j an

Tabellen ("arrays", "lists") Tabellen sind Variablen, die mehrere Werte enthalten können Perl : array @studenten = ('Lukas','Sophie','Armin','Lea') Python : list studenten = ['Lukas','Sophie','Armin','Lea'] Lukas Sophie Armin Lea Index 0 1 2 3 Elemente der Tabelle werden durch die Indizes bezeichnet (Achtung : erstes Element hat Index 0!) studenten[0] 'Lukas' studenten[1:3] 'Sophie', 'Armin' Achtung : der "bis" Index ist exclusiv, d.h. das Element mit diesem Index wird nicht angezeigt!

Tabellen ("arrays", "lists") Index Lukas Sophie Armin Lea 0 1 2 3 Man kann Elemente auch "überspringen" : studenten[0:3:2] 'Lukas','Armin' von... bis... jedes 2. Element ("Inkrementationswert") Ist der Inkrementationswert negativ wird von hinten gezählt. studenten[:: 1] 'Lea','Armin','Sophie','Lukas'

Tabellen ("arrays", "lists") einige Methoden... extend : addiert neue Elemente ans Ende einer Liste In [25]: studenten Out[25]: ['Lukas', 'Sophie', 'Armin', 'Lea'] In [26]: neue_studenten = ['Rosa','Nick'] In [27]: studenten.extend(neue_studenten) In [28]: studenten Out[28]: ['Lukas', 'Sophie', 'Armin', 'Lea', 'Rosa', 'Nick'] count(pattern) : zählt wie oft pattern in der Liste vorkommt In [33]: studenten.count('armin') Out[33]: 1 In [34]: studenten.count('toto') Out[34]: 0

Tabellen ("arrays", "lists") einige Methoden... index: wo in der Liste befindet sich ein Wert? In [38]: studenten.index('armin') Out[38]: 3 In [39]: studenten.index('armin') ValueError Traceback (most recent call last) <ipython input 39 f57e8236a338> in <module>() > 1 studenten.index('armin') ValueError: 'armin' is not in list Man kann überprüfen, ob ein Wert in der Liste vorhanden ist... In [40]: 'armin' in studenten Out[40]: False Alle Methoden : help(list)

besser als Listen : Dictionnaries... noten = [1,3,2,1.3,1.7,2.0,3] die Referenz auf Elemente einer Liste erfolgt über den Index noten[0], noten[3],... praktischer wäre es, eine Note mit dem Namen des Studenten zu verbinden... dictionnaries (hash in anderen Sprachen) noten = {'Armin':1.0,'Sophie':1.3,'Lukas':2.1,'Annabel':1.7} noten['annabel'] # 1.7 noten['toto'] # Fehler noten.get('toto',"nicht vorhanden") # "Nicht vorhanden"

besser als Listen : Dictionnaries... Neues Element hinzufügen : noten['tobias'] = 1.3 noten['armin'] = 1.3 # Neues Element # Existierendes Element updaten Key Value Alle keys anzeigen : noten.keys() noten.has_key('thorsten') # alle Schlüssel # False

Operationen auf Variablen Man kann Variablen miteinander vergleichen True oder False Numerische Variablen : Gleichheit: == Ungleichheit!= grösser, kleiner : <,>,<=,>= Beispiel: 3!= 5 # True a <= b # True oder False, je nachdem Achtung : Zuweisung (=) und Vergleich (==) sind verschieden!

Kontrollstrukturen In manchen Fällen muss man zwischen verschiedenen Möglichkeiten unterscheiden, um eine Aktion durchzuführen if (Bedingung): wenn Bedingung wahr (Befehlsblock) wenn Bedingung falsch (nächste Befehle) Die Bedingung, die getestet wird ist ein logischer Ausdruck : z.b if (a<b) : if (a!= "Tom") :...

Kontrollstrukturen mann kann auch mehrere Bedingungen untersuchen wenn beide wahr sind, wird nur die erste ausgeführt! wenn Bedingung 1 wahr if (Bedingung1) : (Block) elif (Bedingung2) : (Block) wenn beide Bedingungen falsch wenn Bedingung 1 falsch und Bedingung 2 wahr (weitere Befehle)

Schleifen Werde benutzt, um eine Operation mehrere Male durchzuführen Verschiedene Möglichkeiten : wiederholen eine bestimmte Anzahl von Malen for i in range(1,11) : Beispiele:... for i in range(1,11) : print(i) Dieser Block wird bei jeder Iteration ausgeführt. for i in range(1,11): print("iteration :" + str(i)) print(" Noch " + str(10 i) + " zu laufen...")

Schleifen Man kann auch über den Inhalt einer Liste iterieren for i in <Liste> :... Beispiele: for student in studenten : print(student + " ist in der Gruppe") Bei jeder Iteration wird student ersetzt durch den nächsten Wert in der Liste Platzhalter

Schleifen Alternative : Iterationen laufen lassen, solange eine bestimmmte Bedingung erfüllt ist : while <Bedingung> :... Beispiel: Wenn diese Bedingung immer erfüllt ist läuft die Schleife unendlich weiter... count = 0 while (count < 9): print 'The count is:', count count = count + 1 print "Good bye!"

Programme schreiben Die ipython Konsole kann man benutzen, um einzelne Befehle auszuprobieren Wenn längere Abfolgen von Befehlen ausgeführt werden müssen sie in einer Datei geschrieben werden, die als Python Skript gespeichert wird (Achtung! Endung.py) Dieser Skript kann dann aus der bash Konsole ausgeführt werden (Achtung, nicht aus der ipython Konsole!!) $ python /pfad/zu/meiner/datei/script.py