2. Einführung in die Programmierung für Nicht Informatiker*innen¶
Bitte ihre Jupyter Kennung + Vor- & Nachnamen unter folgendem link eintragen survey
Beispiele Print¶
In [1]:
# Beispiel Print
print("Hallo", "Python", end='\n') # Zeigen wie end Funktioniert
print("Freitag 15h") # Ausgabe mittels print
Hallo Python Freitag 15h
In [2]:
"Hallo Python" # direkte ausgabe einer Variablen oder Wert
Out[2]:
'Hallo Python'
In [3]:
432423654645
Out[3]:
432423654645
Variablen zuweisungen¶
In [4]:
zahl1 = 42 # 'zahl1' speichert den Wert '42'
zahl1
Out[4]:
42
In [5]:
print(zahl1) # Ausgabe der Variabeln mittels print
42
In [6]:
zahl2 = 420
zahl2
Out[6]:
420
Operationen mit Integern (gilt auch für Floats)¶
In [7]:
zahl1 + zahl2 # Addition
Out[7]:
462
In [8]:
zahl1 - zahl2 # Subtraction
Out[8]:
-378
In [9]:
zahl2 - zahl1 # Order matters
Out[9]:
378
In [10]:
zahl2 * zahl1 # Multiplikation
Out[10]:
17640
In [11]:
zahl2 / zahl1 # Division
Out[11]:
10.0
In [12]:
2**4 # Exponentiation
Out[12]:
16
In [13]:
float1 = 42.42 # Fließkommzahl speichern
float1
Out[13]:
42.42
In [14]:
zahl2 // zahl1 # Ganzzahldivision
Out[14]:
10
In [15]:
42 % 2 # Modulo (Rest einer Division)
Out[15]:
0
In [16]:
divmod(42, 2) # Kombinierte Built-in funktion, welche den Wert der Ganzzahldivision und den Rest berechnet
Out[16]:
(21, 0)
In [17]:
42 / 2
Out[17]:
21.0
In [18]:
42 % 2
Out[18]:
0
In [19]:
0.1 + 0.2 # Addition von Floats sind nicht immer akkurat
Out[19]:
0.30000000000000004
Booleans¶
In [20]:
0.1 + 0.2 == 0.3 # Nicht richtig aufgrund der unkorrekten binären darstellung von floats
Out[20]:
False
In [21]:
True
Out[21]:
True
In [22]:
False
Out[22]:
False
In [23]:
True + True # Bools sind auch nur Zahlen (True = 1, False = 0)
Out[23]:
2
Listen¶
In [24]:
l = ["Hallo Python", 42, 10.10] # Erstellen einer Liste mit 3 elementen
l
Out[24]:
['Hallo Python', 42, 10.1]
In [25]:
l.append("Text") # Weiteres Element an die liste anfügen
l
Out[25]:
['Hallo Python', 42, 10.1, 'Text']
In [26]:
l
Out[26]:
['Hallo Python', 42, 10.1, 'Text']
In [27]:
g = l[2] # Zugriff auf das dritte Element der Liste
g
Out[27]:
10.1
In [28]:
l[0] # Zugriff erstes element der Liste
Out[28]:
'Hallo Python'
In [29]:
l[-3] # Auff listen lässt sich auch 'rückwärts' zugreifen
Out[29]:
42
In [30]:
l.remove('Text') # Einen Wert aus der Liste entfernen
l
Out[30]:
['Hallo Python', 42, 10.1]
Strings¶
In [31]:
str1 = 'Tex"t' # String mit ''
str1
Out[31]:
'Tex"t'
In [32]:
str2 = "Text'2" # String mit ""
str2
Out[32]:
"Text'2"
In [33]:
# Documentation Strings oder mehrzeillige Strings
str3 = '''
Hallo dies ist ein
echt langer
nicht formattierter
text!!!! ' "
'''
str3 # Ausgabe mit escape Characters
Out[33]:
'\nHallo dies ist ein \necht langer \nnicht formattierter \ntext!!!! \' "\n\n'
In [34]:
print(str3) # "Hübsche" Ausgabe
Hallo dies ist ein echt langer nicht formattierter text!!!! ' "
In [35]:
str1[2] # Strings sind auch nur Listen
Out[35]:
'x'
In [36]:
f"{str1} ist ein text" # F-String formatierung
Out[36]:
'Tex"t ist ein text'
In [37]:
"{} ist ein text".format(str1) # Formatierung mittels format funktion
Out[37]:
'Tex"t ist ein text'
Tuples¶
In [38]:
tuple1 = (42, 10.10) # Tuple erstellen
tuple1
Out[38]:
(42, 10.1)
In [39]:
tuple1[0] # auf element des Tupels zugreifen
Out[39]:
42
In [40]:
tuple1.append(1) # Tuples sind unveränderlich (immutable) daher können nicht einfach elemente angefügt werden
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In[40], line 1 ----> 1 tuple1.append(1) # Tuples sind unveränderlich (immutable) daher können nicht einfach elemente angefügt werden AttributeError: 'tuple' object has no attribute 'append'
Dictionarys¶
In [41]:
dict1 = {"Name": "Phil", "Key": 42} # Dictionary erstellen
dict1
Out[41]:
{'Name': 'Phil', 'Key': 42}
In [42]:
dict1["Key"] # Zugriff auf element des Dicts mittels Schlüssel
Out[42]:
42
In [43]:
dict1["Key2"] = 10 # neues Element in das Dict einfügen
dict1
Out[43]:
{'Name': 'Phil', 'Key': 42, 'Key2': 10}
Sets¶
In [44]:
set1 = {1, 1, 2, 2, 3, 3, 4} # Set erstellen
set1 # Sets haben ausschließlich einzigartige Elemente
Out[44]:
{1, 2, 3, 4}
Conditionals¶
In [45]:
42 % 2 == 0 # Prüfen auf equality
Out[45]:
True
In [46]:
# Unterschiedlichen Code ausführen je nach Bedingung
zahl = 32
if zahl % 2 == 1: # ist die zahl Gerade?
print("Ist Ungerade") # Wenn Ja
else:
print("Ist Gerade") # Wenn Nein
Ist Gerade
In [47]:
# Argument "verneinen"
zahl = 32
if not zahl % 2 == 1: # Ist die zahl nicht gerade?
print("Ist Gerade") # Wenn Ja (Zahl nicht gerade -> Zahl gerade)
else:
print("Ist Ungerade") # Wenn Nein
Ist Gerade
In [48]:
if 42 % 2 == 0 and 36 % 2 == 1: # Und verknüpfung alle bedingungen müssen wahr sein
print("Sind beide Gerade")
In [49]:
True and False
Out[49]:
False
In [50]:
if 42 % 2 == 0 or 36 % 2 == 1: # Oder Verknüpfung eine oder mehrere Bedingungen müssen wahr sein
print("Eine Zahl ist Gerade")
Eine Zahl ist Gerade
In [51]:
True or False
Out[51]:
True
In [52]:
False or False
Out[52]:
False
In [53]:
True or True
Out[53]:
True
In [54]:
# Verschiedene Bedingungen mit verschiedenen Ausgaben
zahl = 10
if zahl % 3 == 0: # zahl durch 3 teilbar?
print("Zahl ist durch 3 glatt teilbar")
elif zahl % 5 == 0: # Zahl durch 5 teilbar?
print("Zahl ist durch 5 glatt teilbar")
else: # Weder noch (Base Case)
print("Zahl ist nicht durch 3 oder 5 teilbar")
Zahl ist durch 5 glatt teilbar
In [55]:
zahl = 90.0
isinstance(zahl, float) # Prüfen ob eine variable einem der Datentypen entspricht (hier float)
Out[55]:
True
Funktionen¶
In [56]:
def f(x): # Einleiten einer Funktion
''' Berechnet das quadrat einer Zahl''' # Docstring zum beschreiben der Funktion
# .... irgendeine Berechnung
rückgabewert = x*x # ist der rückgabewert
return rückgabewert #
In [57]:
f(7)
Out[57]:
49
While Loops¶
In [58]:
i = 0 # Condition
while i < 10: # Prüfung
print(i, "Hallo Python")
i = i + 1 # Anpassung
0 Hallo Python 1 Hallo Python 2 Hallo Python 3 Hallo Python 4 Hallo Python 5 Hallo Python 6 Hallo Python 7 Hallo Python 8 Hallo Python 9 Hallo Python
99 Bootles of Beer¶
In [ ]:
# Vereinigung aller heute gelernten Dinge außer der Funktions Definition
# 99 Bootles of Beer
beer = 99
while beer > -1:
print()
if beer == 0:
print('''
No more bottles of beer on the wall, no more bottles of beer.
We've taken them down and passed them around;
now we're drunk and passed out!
''')
elif beer == 1:
print(beer, "bottle of beer on the wall,", beer, "bottle of beer.")
print("Take one down and pass it around, no more bottles of beer on the wall.", end='')
else:
print(beer, "bottles of beer on the wall,", beer, "bottles of beer.")
if beer - 1 == 1:
print(f"Take one down and pass it around, {beer - 1} bottle of beer on the wall.")
else:
print(f"Take one down and pass it around, {beer - 1} bottles of beer on the wall.")
beer -= 1
# Ausgabe ist zu groß für Slides