Wissenschaftliches Programmieren in Python

Wissenschaftliches Programmieren in Python

Meik Hellmund

hellmund@math.uni-leipzig.de

math.uni-leipzig.de/hellmund/python.html

Mi 7.30 Uhr Felix-Klein-HS sp?ter weitere Termine im Computerpool der Mathematik, A312

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

1 / 57

Organisatorisches

Zielgruppen

Lehramt Sonderp?d/Mittelsch/Gym 8. Sem.

? Kurs ist Pr?fungsvorleistung (Vorauss. f?r Klausurteilnahme) f?r Numerikvorlesung Prof. G?nther

Dipl. Math/WiMa 4. Sem.

? Kurs ist freiwillig zur Vorbereitung auf das Numerische Praktikum (Dipl. Math.) von Prof. Kunkel

? nicht als Thema in m?ndl. Pr?fungen

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

2 / 57

Organisatorisches

Erfolgreiche Teilnahme

ist definiert als: erfolgreiche L?sung von 5 Programmieraufgaben (s. Webseite zum Kurs) davon 2 aus der Gruppe Aufgaben 1?10 und 3 aus der Gruppe Aufgaben 11?23 Zweier- und Dreiergruppen zul?ssig nicht im 14-Tage-Rhythmus, bis zur letzten VL-Woche Vorstellung im Computerpool bei mir

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

3 / 57

Organisatorisches

Anmeldungen

Online-Anmeldung unter



? F?r Computerpool der Mathematik (bitte auch anmelden, wenn Sie schon einen Pool-Account haben) und den Python-Notebook-Webserver

? Anmeldepasswort: steht an der Tafel ? verwendet studserv-Account als Namen, hat aber sonst nichts damit

zu tun. Mail mit Passwort geht an diese Adresse.

Bitte bald anmelden!

Computerpool

im Augusteum 3. Etage, Raum A312

Python-Notebook-Webserver



Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

4 / 57

Ziel und Inhalt

Einf?hrung in Python (keine Objektorientierung, Metaklassen, etc...) Schwerpunkt auf numerische Anwendungen Die Bibliothek NumPy f?r numerisches Python Die Bibliothek MatPlotLib

import numpy as np import matplotlib.pyplot as plt

a = [1,3,5,3] b = [1,5,7,4] delta = np.pi/2 t = np.linspace(-np.pi, np.pi, 300)

for i in range(0,4): x = np.sin(a[i] * t + delta) y = np.sin(b[i] * t) plt.subplot(2,2,i+1) plt.plot(x,y)

plt.show()

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

5 / 57

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

6 / 57

Warum Python?

Vielseitige Sprache: prozedural | objektorientiert | funktional Free & Open Source Implementierungen f?r alle g?ngigen Betriebssysteme Interpreter, Just-in-time Compiler, Cython, Jython Umfangreiche Bibliotheken und Module Schlanke Syntax

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

7 / 57

Schlanke Syntax

Java

public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); }

}

Python

print("Hello World!")

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

8 / 57

Geschichte

1991 first release, version 0.9 1994 Python 1.0 2000 Python 2.0 2008 Python 3.0

z. Zt. 2 Dialekte, Python 2 und Python 3

Aktuelle Arbeit an Python2: bug fixing und backporting von Python3-Features

Aktuell: 19. Dez 2017 Python 3.6.4 16. Sep 2017 Python 2.7.14

Guido van Rossum (2006)

Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

9 / 57

Werbepause

SageMath auf Python basierendes Computeralgebrasystem

free&open source



Meik Hellmund (Uni Leipzig)

Wiss. Programmieren in Python

10 / 57

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download