3. Vorlesung¶

Einfache Zählschleife¶

In [2]:
# Als While Loop
count = 1 # Zählvariable
while count < 4: # Bedingung
    print(count)
    count += 1 # Hochzählen
1
2
3
In [4]:
# Als For Loop
for count in [1, 2, 3]:
    print(count)
1
2
3

Beispiel einer Zählschleife in C:

for (int i = 0; i < 4, i++) {}
In [2]:
# Zählschleife mittels range Funktion
for count in range(1,4):
    print(count)
1
2
3

range kann bis zu 3 Parameter nehmen.

  • 1 Parameter range(4) -> Zählt in 1er Schritten bis exklusive der eingegebenen Zahl 0,1,2,3

Der folgend genutzte Stern * sagt Python er soll den iterator entpacken.

In [4]:
print(*range(4))
0 1 2 3
  • 2 Parameter range(1,4) -> Zählt in 1er Schritten von dem ersten Parameter bis exklusiv zum zweiten Parameter 1,2,3
In [5]:
print(*range(1,4))
1 2 3
  • 3 Parameter range(1,11,2) -> Zählt in 2er Schritten von dem ersten Parameter bis exklusiv zum zweiten Parameter
In [6]:
print(*range(1,11,2))
1 3 5 7 9

For-Loops itertieren über Iteratoren. Listen sind z.b. Iteratoren.

In [7]:
l = [0, 1, 2, 3, 4]
l
Out[7]:
[0, 1, 2, 3, 4]
In [8]:
for el in l:
    print(el)
0
1
2
3
4
In [9]:
len(l) # Anzahl 'Länge' der Liste l
Out[9]:
5
In [10]:
# range zählt bis 'exklusive' seines Eingabeparameters um folgendes verhalten zu emulieren
for i in range(len(l)):
    print(i)
0
1
2
3
4
In [11]:
# Iteration über die Indexe der Liste 
for i in range(len(l)):
    print(l[i]) # Zugriff über Index auf die Elemente der Liste
0
1
2
3
4
In [12]:
# _ wird verwendet für Loops die einfach etwas immer und immer wiederholen sollen
for _ in range(6):
    print("Hello")
Hello
Hello
Hello
Hello
Hello
Hello

Folgende Dict beispiele Eklären sich dementsprechend selber

In [13]:
d = {"a": 5, "b": 8, "c": 10}
d
Out[13]:
{'a': 5, 'b': 8, 'c': 10}
In [14]:
d.values()
Out[14]:
dict_values([5, 8, 10])
In [15]:
for el in d.values():
    print(f"Wert: {el}")
Wert: 5
Wert: 8
Wert: 10
In [16]:
for key in d.keys():
    print(f"Key: {key}")
Key: a
Key: b
Key: c
In [17]:
# Items gibt eine Liste mit tupeln zurück, jedes tuple wird in seine Elemente zerlegt und den Variablen k & v zugewiesen
for k, v in d.items():
    print(f"Key: {k} mit Wert: {v}")
Key: a mit Wert: 5
Key: b mit Wert: 8
Key: c mit Wert: 10
In [18]:
# Liste füllen
squared = []
for i in range(6):
    squared.append(i*i)
squared
Out[18]:
[0, 1, 4, 9, 16, 25]
In [19]:
# List Comprehension 
sq = [n**2 for n in range(6)]
sq
Out[19]:
[0, 1, 4, 9, 16, 25]
In [20]:
# Dict füllen
di = {}
for n in range(6):
    di[n] = n**2
di
Out[20]:
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
In [21]:
# Dictionary Comprehension
dic = {n: n**2 for n in range(6)}
dic
Out[21]:
{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

System Interaction¶

In [27]:
input()
Out[27]:
'4'
In [28]:
text = input()
In [29]:
text
Out[29]:
'6'
In [30]:
input("Gebe bitte eine Zahl ein:")
Out[30]:
'7'

File Handling¶

In [24]:
f = open('test.txt') # Öffne File und gebe den Handler an f, Standard im Lesemodus
f
Out[24]:
<_io.TextIOWrapper name='test.txt' mode='r' encoding='UTF-8'>
In [25]:
f.readlines() # Lese den Inhalt aus f
Out[25]:
['Super Secret Message\n', 'Hallo Welt\n', 'Geiler Kurs\n', 'Freitag 15h yeah']
In [28]:
data = open('data.txt', 'w') # Öffne eine beschreibare File
data
Out[28]:
<_io.TextIOWrapper name='data.txt' mode='w' encoding='UTF-8'>
In [29]:
data.write("Ich will nachhause") # Schreibe in die File 
Out[29]:
18
In [31]:
# Schliese die Files
f.close()
data.close()
In [32]:
# Standard File handling
f = open('test.txt')
print(f.readlines())
f.close()
['Super Secret Message\n', 'Hallo Welt\n', 'Geiler Kurs\n', 'Freitag 15h yeah']
In [33]:
f.readlines() # File ist geschlossen also ist lesen nicht möglich
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[33], line 1
----> 1 f.readlines() # File ist geschlossen also ist lesen nicht möglich

ValueError: I/O operation on closed file.
In [35]:
# Contexte nehmen einem die Arbeit ab
with open('test.txt', 'r') as f:
    print(f.readlines())

# File ist bereits geschlossen 
f.readlines() # Wirft Fehler
['Super Secret Message\n', 'Hallo Welt\n', 'Geiler Kurs\n', 'Freitag 15h yeah']
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
Cell In[35], line 6
      3     print(f.readlines())
      5 # File ist bereits geschlossen 
----> 6 f.readlines() # Wirft Fehler

ValueError: I/O operation on closed file.

Importing¶

In [46]:
import math
In [47]:
math
Out[47]:
<module 'math' from '/usr/local/Cellar/python@3.12/3.12.5/Frameworks/Python.framework/Versions/3.12/lib/python3.12/lib-dynload/math.cpython-312-darwin.so'>
In [48]:
math.pi
Out[48]:
3.141592653589793
In [49]:
math.sqrt(10)
Out[49]:
3.1622776601683795
In [50]:
math.sqrt(4)
Out[50]:
2.0
In [37]:
from math import sqrt
In [38]:
sqrt
Out[38]:
<function math.sqrt(x, /)>
In [52]:
sqrt(90)
Out[52]:
9.486832980505138
In [36]:
from math import * # Böse nicht mache führt nur zu unerklärbaren Fehlern
In [40]:
import numpy as np
In [41]:
np.sqrt(9000)
Out[41]:
np.float64(94.86832980505137)
In [42]:
np
Out[42]:
<module 'numpy' from '/home/phil/Desktop/programmieren_wise_24_25/Material/env/lib64/python3.12/site-packages/numpy/__init__.py'>