Crashkurs Python und Sage U23 Krypto-Mission

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

Python 2. Vorlesung Computerlinguistische Techniken Alexander Koller. 28. Oktober 2014

Einführung in die Computerlinguistik

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Programmierkurs Python I

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

Vorlesung Skriptsprachen Duale Hochschule Stuttgart Sommersemester Dipl.-Ing. (FH) Volker Schepper

string: Beispiele: Test, test, `Seitentitel: ${document.title}`

Elementare Konzepte von

Einführung in die Programmierung mit VBA

INFORMATIK FÜR BIOLOGEN

C++ Teil 2. Sven Groß. 16. Apr IGPM, RWTH Aachen. Sven Groß (IGPM, RWTH Aachen) C++ Teil Apr / 22

Funktionales Programmieren in Python

Informatik I: Einführung in die Programmierung

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

Multimedia im Netz Wintersemester 2011/12

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

Syntax der Sprache PASCAL

Übung zur Vorlesung Multimedia im Netz

Collatz-Folge. falls a i ungerade.

Steht in der ersten Zeile #!/usr/bin/python und hat man die Ausführungsrechte gesetzt kann man es direkt ausführen.

Bash-Skripting Linux-Kurs der Unix-AG

1 Aufgaben 1.1 Umgebungsvariable setzen: CLASSPATH

Sage 0: Einführung Basics

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

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

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

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

Bash-Skripting Linux-Kurs der Unix-AG

Programmierkurs Python I

Skriptsprachen am Beispiel Python

WiMa-Praktikum 1. Woche 8

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

1 Autorennen ( = 11 Punkte)

1 Konsole öffnen. 2 matlab & und return eingeben. 3 Konsole dauerhaft geöffnet lassen. 1 Menüpunkt File - Exit MATLAB oder. 2 quit (und return) oder

Girls Day 2017 Programmierung

Korn-Shell: Einführung in Shellscripte 1. Übersicht: Einführung - 2. Die Kornshell im Detail - 3.Grundlagen der Programmierung

Python-Workshop. Python für C/C++ Programmierer. Carl Friedrich Bolz. Carl Friedrich Bolz

Programmieren I. Kapitel 5. Kontrollfluss

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

Python Tutorial. Geschrieben am Von Sebastian Schäfer 0 EINLEITUNG EINFÜHRUNG Python...

Programmierkurs Python I

Einführung in Python Teil I Grundlagen

Einführung in die Programmiertechnik

RO-Tutorien 3 / 6 / 12

Funktionen in Python

Funktionen in Matlab. Nutzerdefinierte Funktionen können in.m-datei gespeichert werden

Objektorientierte Programmierung (OOP) mit Matlab - Ein Crashkurs

Programmierkurs Python I

Lua Grundlagen Einführung in die Lua Programmiersprache

RO-Tutorien 15 und 16

Das diesem Dokument zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung und Forschung unter dem Förderkennzeichen

Inhaltsverzeichnis. Warren D. Sande, Carter Sande. Hello World! Programmieren für Kids und andere Anfänger. Übersetzt von Dorothea Heymann-Reder

Inhalt. Vorwort 13. Einleitung JavaScript-Grundlagen 17

Programmierkurs Python I

4.2 Selbstdefinierte Matlab-Funktionen 1. Teil

Introduction to Python. Introduction. First Steps in Python. pseudo random numbers. May 2016

Einführung in MATLAB + MATLAB Simulink. Dipl.-Inf. Markus Appel

Java: Eine kurze Einführung an Beispielen

Programmieren I + II Regeln der Code-Formatierung

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

Test-Klausuraufgaben Softwaretechnik Fachbereich BW, für WINFO

Algorithmen und Datenstrukturen II

1 Erste Schritte in KASH3

EINFÜHRUNG IN DIE PROGRAMMIERUNG

Java I Vorlesung Imperatives Programmieren

Algorithmen implementieren. Implementieren von Algorithmen

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

Mathematik am Computer 6. Vorlesung: Matlab, Teil I

RO-Tutorien 17 und 18

Inhalt. 1 Einstieg in die Welt von C Erste Schritte in C 31. Vorwort... 15

Imperative vs. Funktionale Programmierung

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

Prinzipien der Softwareentwicklung S. Strahringer

pue02 October 28, 2016

Die Syntax von Java. Ursprünge. Konsequenzen. Das Wichtigste in Kürze. Weiteres Vorgehen. Rund um Java. Sun Microsystems. Borland Software Corp

Algorithmen und Datenstrukturen

Python Programmieren. Variablen, Ausdrücke und Anweisungen

SmallTalk - Eine kurze Einführung

Eine JAVA Einführung ... Quellcode:... COMA Übung 3. T.Bosse. A.Griewank. Vorschau JAVA Programme Sprachen Kate

Technische Universität Braunschweig Institut für Programmierung und Reaktive Systeme

Informatik I. 4. Funktionen: Aufrufe und Definitionen. 25. Oktober Albert-Ludwigs-Universität Freiburg. Informatik I.

4.Grundsätzliche Programmentwicklungsmethoden

Programmieren mit statistischer Software

Programmiersprache 1 (C++) Prof. Dr. Stefan Enderle NTA Isny

Vorlesungsprüfung Programmiersprache 1

C-Pointer (Zeiger, Adressen) vs. C++ Referenzen

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

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

2 Eine einfache Programmiersprache

Array-Zuweisungen. Array-Zuweisungen können über die Position, den Namen oder gemischt erfolgen.

Die Programmiersprache C Eine Einführung

Tutorium für Fortgeschrittene

Programmierung in Python

Fangen wir mit ein paar Unterschieden und Gemeinsamkeiten zu JavaScript an: CoffeeScript kennt keine Strichpunkte am Ende der Zeile.

Einführung in die Programmierung (MA8003)

Einführung in C. EDV1-04C-Einführung 1

Informatik für Schüler, Foliensatz 18 Rekursion

Transkript:

Crashkurs Python und Sage -Mission florob Simon e.v. http://koeln.ccc.de 4. Oktober 2015

Anfang Übersicht Sage Computer-Algebra-System, wie MatLab oder Mathematica sagemath.org Python interpretierte Programmiersprache mit einfacher Syntax

Namen Objekte und Variablen Objekte sind Werte, haben einen Typ Variablen sind Namen, die auf Objekte zeigen 1, True, [ a, b, c ] # Kommentar ding = 5 # Typ: Integer anderes_ding = "fuenf" # Typ: string ding = anderes_ding # Typ: string! Felder und Methoden sind Namen, die zu einem Objekt gehören person.vorname 17.is_prime()

Namen Operatoren Arithmetisch +, -, *, /, //, **, ˆ, % Logisch and, or, not, >, >=, ==,!=, <=, < Bitweise &,, ^^, ~, <<, >> Mengen in, not in Index, Slice [], [::] Funktionsaufruf ()

Struktur Kontrollstrukturen Zeilen, die gleich weit eingerückt sind, sind ein Block While-Schleife while <condition>: For-Schleife for <var> in <sequence>: Verzweigung if <condition>: for i in range(17): if i == 4: print 4 gefunden else: do_nothing() something_else(i)

Funktionen Funktionen Funktion ist ein Block mit Namen Funktionen können Parameter/Argumente haben und einen Wert zurückgeben Argumente können Standardwerte haben def greet(name, greeting= hello ): return greeting + + name Beim Aufruf einer Funktion müssen Parameter ohne Standardwert angegeben werden. Parameter mit Standardwert können angegeben werden greet( earthling ) greet( meine Damen und Herren, Guten Abend ) greet() # Fehler

Funktionen Funktionen Beim Aufruf einer Funktion können Parameter auch direkt benannt werden greet(greeting= Guten Morgen, name= Sonnenschein ) Funktionen ohne explizites return geben None zurück.

Funktionen Funktionen Lambdas sind Funktionen ohne Namen def f(x): return 2*x + 1 f = lambda x: 2*x + 1 Unterschied: Lambdas enthalten einen Ausdruck, Funktionen einen ganzen Block lambda x: x^2 # Lambdas sind Objekte sort(anwesenheitsliste, key = lambda person: person.nachname)

Literale Literale: Schreibweisen für komplexe Objekte Liste [eins, zwei, drei,...] l = [1, 2, 3] l[0] # Lesezugriff l[2] = text # Schreibzugriff len(l) l.append( unsinn ) l.remove(17) Slicing erzeugt eine Teilliste l[start:stop] l[start:stop:step] l[::-1]

Literale Literale: Schreibweisen für komplexe Objekte Zuordnung {key1:eins, key2:zwei, key3:drei,...} d = { one : 1, two : 2} # Lesezugriff: d[ one ] d[ nix ] # KeyError two in d # True, Schluessel vorhanden d.keys() d.values() # Schreibzugriff d[ slice ] = l[5:-7] del d[ two ]

Literale Literale: Schreibweisen für komplexe Objekte Menge {eins, zwei, drei,...} s = { a, b, c, a } s == { a, b, c } # Lesezugriff: for i in s: pass if v in s: pass # "Schreibzugriff" s {4} # Vereinigung s & {4} # Schnitt s - {4} # Differenz

Literale List Comprehension quads = map(lambda x: x**2, range(50)) l = [] for i in quads: if i % 2 == 0: l.append(i) l = [i for i in quads if i % 2 == 0]

Zusammenfassung Zusammenfassung Namen Objekt, Variable, Feld, Methode Struktur Schleife, Verzweigung, Funktion Funktionen Parameter, Argumente, benannte Argumente, Rückgabewert, Lambdas Literale Zahlen, Strings, Listen, Mengen, Zuordnungen, List Comprehension

Sage Kommandozeile Read-Evaluate-Print-Loop sage: def f(i):...: return i^2...: sage: f <function f at 0x7f13d5cb96e0> sage: f(4) 16 Alternativ: notebook()

Sage Navigation <tab> Felder und Methoden vorschlagen Achtung: geht nur bei konstanten Ausdrücken! sage: l = [] sage: l.<tab> sage: l.r<tab> Pfeiltasten Letzte Befehle wiederholen Unterstriche _,, sind das letzte bis drittletzte Ergebnis magic commands %ed <name> für mehrzeiliges Bearbeiten Vim geht mit Strg+C, :wq, <Enter> wieder weg :)

Sage Hilfe Fragezeichen-Operator Hilfe zum Objekt anzeigen Achtung: geht nur bei konstanten Ausdrücken! sage: l = {} sage: l? sage: help(l) sage: FiniteField? Doppeltes Fragezeichen zeigt Quellcode an (wenn verfügbar). Online-Hilfe manual() für Befehlsreferenz tutorial() für Anleitungen

Sage Konstruktoren Sage bringt eine Menge Know-How mit, z.b. Symbolische Berechnungen solve([0 == x^3 + 486662*x^2 + x], x) Plots in 2D und 3D Mathematische Strukturen FiniteField(431)[ x ].quotient(x^2 + x + 1) Alles, was Python kann uvm: sage.<tab>

Ende Ende Fragen? Dann wirds jetzt praktisch.