Einführung in das Programmieren mit Python
Einführung
Martin Kerscher
Fakultät für Physik
Ludwig–Maximilians–Universität München
Organisatorisches
Unix Einführung
Erste Schritte am Rechner
Dateisystem
Python
Warum
Installation Anaconda
Anaconda und Spyder
Zahlen
Erste Programme
Organisatorisches
• Einstiegt und zentrale Informationsquelle ist
Moodle: http[Link]
• Weitere Informationsquellen:
Python Dokumentation: [Link]
Tutorial: [Link]
Referenz: [Link]
• Bücher:
H.P. Langtangen A Primer on Scientific Programming with Python
D.M. Beasley Python - Essential Reference
B. Slatkin Effective Python
Organisatorisches
Vorlesung und Übung
• Die Veranstaltung besteht aus einer Vorlesung und direkt im
Anschluss einer Übung.
• Die Veranstaltung findet identische an den drei folgenden Terminen
statt: Di 12-14, Di 16-18 und Do 8-10
• Im Moodle werden die Übungsaufgaben, die Folien zur Vorlesung und
die Beispielprogramme bereitgestellt, später die jeweiligen
Musterlösungen zu den Übungen.
Unix Einführung
Anmelden und Abmelden
• Unix ist ein Multiuser-Betriebssystem.
• An- und Abmelden am System (login/logout) mit Ihrer
Campus–Kennung (account) .
• Die Benutzerkennung ist durch ein Paßwort geschützt.
• Persönliche Umgebung (Home-Directory)
Literatur
• Jürgen Gulbins, Karl Obermayr: Linux. Oberflächen, Konzepte,
Kommandos, Springer.
• viele, viele Bücher.
Unix Einführung
Im CIP stehen mehrere Windowmanager und Desktop Environments wie
Plasma (KDE), XFCE4 und GNOME zur Verfügung.
Suche von Programmen mit (Alt F2).
Webbrowser, Filemanager
• Es gibt unter Linux verschiedene Webbrowser, üblich ist firefox
• Ebenso gibt es verschiedenste Filemanager:
nautilus, thunar, dolphin.
Befehlseingabe über die konsole (Terminal)
• Es gibt verschiedene Terminalapplikationen, bitte verwenden Sie
konsole
• Im Konsolen Fenster können Sie Kommandos eingeben und
Programme starten.
Unix Einführung
Einfache Befehle
• ls
Zeigt Namen von Dateien und Verzeichnissen an (hierzu später mehr).
• pwd
Zeigt das Verzeichnis in dem man sich befindet.
• man Befehl ; man -k Ausdruck
I Aufruf des Online-Handbuches zum Befehl.
I man -k sucht nach einem Ausdruck in allen Manual-Seiten.
Die Shell
• Befehle können mit Strg-C (Ctrl-C) abgebrochen werden.
• Mit den Pfeiltasten ↑, ↓ erreichen sie die command line history.
• Sie können die Kommandozeile bearbeiten.
Unix Einführung
Unix Einführung
ls [Datei/Verzeichnis]
Zeigt Namen und Kenndaten von Dateien an bzw. listet den Inhalt des
Verzeichnisses auf. Sowohl absolute als auch relative Pfadangaben sind
möglich.
-a Auch Dateien, die mit einem Punkt beginnen (versteckte Dateien),
werden gelistet.
-l Anzeige im Langformat. U.a. Zugriffsrechte, Benutzer- und
Gruppennummer, Zeitstempel, Größe usw.
-R Zu Verzeichnissen werden auch alle Unterverzeichnisse rekursiv
angezeigt.
cd [Verzeichnis]
Wechselt in das angegebene Verzeichnis bzw. ins eigene Home-Verzeichnis,
wenn kein Parameter angegeben wird. “..” bezeichnet das übergeordnete
und “.” das aktuelle Verzeichnis.
Ausblick: Kopieren, Verschieben, Löschen
mkdir Verzeichnis ; rmdir Verzeichnis
mkdir legt ein leeres Verzeichnis an, rmdir löscht ein leeres Verzeichnis.
cp Datei1 Datei2 ; cp Datei1 Verzeichnis
Kopiert Dateien oder Verzeichnisse. Die Originaldatei bzw. das
Originalverzeichnis bleibt erhalten. Mit der Option -r werden
Verzeichnisse rekursiv mit allen Inhalten kopiert.
mv Datei1 Datei2
Zum Umbenennen oder Verschieben von Dateien oder Verzeichnissen.
rm [-r] Datei(en)
Zum Löschen von Dateien oder Verzeichnissen. Mit der Option -r werden
Verzeichnisse rekursiv mit allen Unterverzeichnissen gelöscht.
Python
Warum Python: Warum nicht:
• klare und einfache Syntax
• vollwertige moderne
Programmiersprache
• derzeit das Tool für Datenanalyse • hoher Abstraktionsgrad
(Data Science, Machine Learning) • Interpreter
• umfangreiche Resourcen (Libraries, • nur teilweise tauglich für
Community, . . . ) Number Crunching“.
”
• hoher Abstraktionsgrad (“Wir machen
Physik, die Informatik den Rest.”)
• Interpreter
Python
Wir werden nicht nur Python sondern auch einige zusätzliche Pakete
verwenden. In der Anaconda distribution1 sind diese zusammengefasst.
Unabhängig vom Betriebssystem erhalten Sie so eine vergleichbare
Umgebung.
• Bitte installieren Sie die Anaconda Distribution2 . Es gibt Versionen
für Windows, Mac OS und Linux.
• Anaconda ist auch im CIP installiert (siehe nächste Folie)
1
[Link]
2
[Link]
Python
• Pythen und Anaconda sind auch im CIP3 installiert. Gegebenenfalls
können Sie auch den Network access from at home4 nutzen.
• Anaconda muss im CIP als Modul geladen werden, dann kann die
Entwicklungsumgebung spyder direkt gestartet werden.
˜$ module load python/3.12-2024.10
˜$ spyder &
(˜$ anaconda-navigator ) nicht notwendig
(beides auf der Kommandozeile.)
3
[Link]
4
[Link]
Python
• Wir verwenden die Python
Distribution von Anaconda.
• Als Editor verwenden wir
Spyder.
• Einstiegspunkt kann auch
der Anaconda Navigator
sein.
Python
Spyder ist eine schlanke Ent-
wicklungsumgebung für Py-
thon
• links der Editor
• rechts unten die
Python Konsole
• (rechts oben ein
weiteres Fenster)
Die Beispiele in [Link] werde ich auf der Python Konsole eingeben.
Zahlen
Siehe die Python Referenz: Datentypen für Zahlen5
• Ganze Zahlen – int mit unbegrenzter Größe
• Fließkommazahlen – float q, typischerweise
t
kν 2−ν mit t = 53, kν ∈ {0, 1}, E ∈ {−1022, . . . , 1023}.
X
q = ±2E
ν=1
Beispiel Basis 10: 2.34 = +101 ∗ (2 ∗ 10−1 + 3 ∗ 10−2 + 4 ∗ 10−3 )
• Komplexe Fließkommazahlen – complex haben eine Fließkommazahl
als Real- und Imaginärteil: 2+3j mit der imaginären “Einheit” j.
• Erweiterung um mathematische Funktionen6 mit Modul math und
cmath.
Beispiele in [Link]
5
[Link]
6
[Link]
Python
Hallo
• Bisher Python am Prompt — besserer Taschenrechner
• Ein Python Programm ist ein Textdatei mit Python Befehlen:
print("Hallo")
• Am Python Prompt würde nur "Hallo" reichen, im Programm muss
eine Ausgabe explizit mit print() erzeugt werden.
Python
Schwarzschild Radius
Ereignishorizont (sphärisch sym-
metrisch, nicht-rotierend, etc.)
Massen: Erde, Sonne, Sagittarius A∗
2GM
rs =
c2 M⊕ = 5.97 × 1024 kg
mit M = 1.99 × 1030 kg
G = 6.67430 × 10−11 m3 MSgr A∗ = 8.2 × 1036 kg
kg s2
c = 299792458 ms