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 in2
er 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'>