LaTeX, Linux, Python

Werbung
LATEX, Linux, Python
Daniel Borchmann, Tom Hanika, Maximilian Marx
19. Januar 2015
cba
Python-Grundlagen
Ziele des Abschnitts
Ziele
„Python als Taschenrechner“
Grundlagen: Syntax, Datentypen
Interaktiv!
Python installieren:
https://www.python.org/downloads/
hier: Python 3.2+
Python-Grundlagen
Einführung
Einführung
HSSSSHHHSHSHHS
Entwickelt seit 1989 durch Guido van Rossum (BDFL)
1991: Python 0.9
1994: Python 1.0
2000: Python 2.0
2008: Python 3.0
Einführung
Hallo.
1
print("Hello,␣world!")
Python 2:

1
from __future__ import print_function
Einführung
Zahlen
Rechnen mit Python
Arithmetik mit +, -, *, /, **, %
Ganzzahlige Division mit //
1
2
3
4
5
6
7
8
>>> 23 + 42
65
>>> 2.3 * 5 - 9 / 6 ** -3
-1932.5
>>> 3 / 2
1.5
>>> 3 // 2
1
Python 2:

1
from __future__ import division
Einführung
Zahlen
Zahlentypen
1
2
3
4
5
6
7
8
9
10
Ganzzahlen, beliebig genau
Binäre Fließkommazahlen
Komplexe Zahlen
Rationale Zahlen (Modul fractions)
Dezimale Fließkommazahlen (Modul decimal)
>>> complex(0, 1)
1j
>>> 3 - 1j
(3-1j)
>>> (3-1j).conjugate()
(3+1j)
>>> (3 - 1j).real
3.0
>>> (3 - 1j).imag
-1.0
Einführung
Zeichenketten
Zeichenketten
Unicode
unveränderbar, jede Änderung erzeugt eine neue Zeichenkette
1
2
3
4
5
6
7
8
9
>>> "spam" 'eggs'
'spameggs'
>>> s = 'spam'
>>> s * 3 + 'eggs'
'spamspamspameggs'
>>> """spam
...␣eggs
...␣bacon"""
'spam\neggs\nbacon'
Einführung
Sequenzen
Listen
veränderbare Folge von Elementen
1
2
3
4
5
6
7
8
9
10
11
12
13
>>>
>>>
[1,
>>>
3
>>>
[3,
>>>
[1,
>>>
[1,
>>>
[3,
l = list(range(1, 10))
l
2, 3, 4, 5, 6, 7, 8, 9]
l[2]
l[2:]
4, 5, 6, 7, 8, 9]
l[:2]
2]
l[::2]
3, 5, 7, 9]
l[2:7:3]
6]
Einführung
Sequenzen
Mehr Listen
1
2
3
4
5
6
7
8
9
10
11
12
>>> l = list(range(1, 10))
>>> l
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> l[2] = 23
>>> l
[1, 2, 23, 4, 5, 6, 7, 8, 9]
>>> list(reversed([1, 3, 2]))
[2, 3, 1]
>>> sorted([2, 7, 1, 8, 2, 8])
[1, 2, 2, 7, 8, 8]
>>> ",␣".join(['eggs', 'bacon', 'spam'])
'eggs,␣bacon,␣spam'
Einführung
Sequenzen
Tupel
unveränderbare Folge von Elementen
1
2
3
4
5
6
7
8
9
10
>>>
>>>
1
>>>
(2,
>>>
>>>
(2,
>>>
2
a, b, c = (1, 2, 3)
a
(b, c)
3)
c, a, b = a, b, c
(a, b, c)
3, 1)
(1, 2, 3)[2]
Einführung
Sequenzen
Sets
veränderbare Menge von unveränderbaren Elementen
1
2
3
4
5
6
7
8
9
10
>>> a = set(range(1, 10))
>>> b = set(range(3, 9))
>>> a
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> a.union(b)
{1, 2, 3, 4, 5, 6, 7, 8, 9}
>>> a.issuperset(b)
True
>>> a.difference(b)
{1, 2, 9}
Einführung
Sequenzen
Dictionaries
veränderbare Zuordnung von unveränderbaren Schlüsseln zu Werten
1
2
3
4
5
6
7
8
9
10
>>> d = {0: 'eggs', 1: 'bacon', 'spam': 'spam'}
>>> d
{0: 'eggs', 1: 'bacon', 'spam': 'spam'}
>>> d[1]
'bacon'
>>> d['spam']
'spam'
>>> d['eggs'] = 'spam'
>>> d
{0: 'eggs', 1: 'bacon', 'eggs': 'spam', 'spam': 'spam'}
Python-Grundlagen
Funktionen
Funktionen
Funktionen
Einrückung als Syntaxelement
Funktionen sind first-class
1
2
3
4
5
6
7
>>> def f():
...
"prints␣'hello,␣world!"
...
print('hello,␣world!')
...
>>> f()
'hello,␣world!'
>>> help(f)
Funktionen
Mehr Funktionen
Funktionen mit Argumenten
Lambdas als anonyme Funktionen
1
2
3
4
5
6
7
8
9
10
>>> def g(x, y):
...
return complex(y, x).conjugate()
...
>>> g(23, 42)
(42-23j)
>>> g(y=23, x=42)
(23-42j)
>>> h = lambda x, y: complex(y, x).conjugate()
>>> h(23, 42)
(42-23j)
Python-Grundlagen
Kontrollfluss
Kontrollfluss
Vergleiche
Vergleiche mit <, <=, ==, !=, >=, >
== vergleich Wert, nicht Referenz
is vergleicht Referenz
1
2
3
4
5
6
7
8
9
10
>>> 1 == 1
True
>>> 1 < 2 <= 3 != 4 >= 3 > 2
True
>>> 1 < 2 <= 3 == 4 >= 3 > 2
False
>>> [1, 2, 3] == [1, 2, 3]
True
>>> [1, 2, 3] is [1, 2, 3]
False
Kontrollfluss
Logische Ausdrücke
and, or
Kurzschlussauswertung
1
2
3
4
5
6
>>> False and True
False
>>> False and 0 / 0 < 1
False
>>> 1 < 2 or False or 3 < 4
True
Kontrollfluss
Bedingungen
1
2
3
4
5
6
7
1
2
3
4
5
6
def f(x):
if -3 <= x <= 3:
print(r'x␣\in␣(-3,␣3)')
elif x < 0:
print('x␣<␣-3')
else:
print('x␣>␣3)
>>> f(0)
x \in (-3, 3)
>>> f(4)
x < -3
>>> f(-4)
x > 3
Kontrollfluss
Schleifen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for und while
>>> for i in range(1, 4):
...
print(i)
...
1
2
3
>>> i = 1
>>> while i < 4:
...
print(i)
...
i += 1
...
1
2
3
Kontrollfluss
Mehr Schleifen
1
2
3
4
5
6
7
1
2
3
4
5
6
7
def f(lst):
for i in lst:
print(i)
if i == 2:
break
else:
print('no␣3')
>>> f(range(1, 3))
1
2
>>> f([1, 3])
1
3
no 3
Kontrollfluss
Noch mehr Schleifen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Iteration durch beliebige Sequenzen
>>> for
...
...
s
p
a
m
>>> for
...
...
eggs
spam
bacon
23
c in 'spam':
print(c)
x in {'eggs', 23, 'bacon', 'spam'}:
print(x)
Herunterladen