Basics & Zahlentypen¶
Aufgabe: Geben Sie den Text Hallo Python
aus.
print("Hallo Python")
Hallo Python
Aufgabe: Definieren Sie zunächst die zwei Variablen a
und b
und initialisieren diese mit einem Integerwert ungleich 0
:
a = 1
b = -2
Aufgabe: Definieren Sie zwei Variablen s
und t
und initialisieren diese mit einem Floatwert ungleich 0
:
s = 1.5
t = -2.7
Aufgabe: Addieren Sie die Werte der Variablen a
und b
und speichern Sie das Ergebnis in der Variable c
:
c = a + b
c
-1
Aufgabe: Nutzen Sie die Variablen a
& b
und Speichern Sie die Ergebnisse für die Multiplikation, Division, Ganzzahldivision, Exponentiation und den Modulo-Operator in den unten angegebenen Variablen:
\begin{align} m &= a\cdot b\\ d &= \frac{a}{b}\\ i &= \lfloor\frac{a}{b}\rfloor\\ e &= a^b\\ r &= a\; \textrm{mod}\; b \end{align}
m = a*b
d = a/b
i = a//b
e = a**b
r = a%b
print(m, d, i, e, r, sep='\n')
-2 -0.5 -1 1.0 -1
Aufgabe: Ein String-Objekt (Text) können sie mit Hilfe von 'Some Text'
oder "Some Text2"
definieren. Definieren sie die Variable text
mit einem beliebigen Text.
text = "Hi Mom, I am on TV!"
text
'Hi Mom, I am on TV!'
Aufgabe: Geben Sie die Variablen a
& b
aus Aufgabe 1 im format "a = 12 und b = 12"
(Die Werte sollen dann den Werten aus ihrer Definition entsprechen. 12 ist hier nur ein Beispiel) aus.
print("a = {} und b = {}".format(a, b))
a = 1 und b = -2
print(f"a = %d und b = %d" % (a, b))
a = 1 und b = -2
print(f"a = {a} und b = {b}")
a = 1 und b = -2
Listen¶
Aufgabe: Definieren Sie die Variable l
und weisen Sie dieser Variable eine Liste mit aufsteigenden Integerwerten von 0
bis 4
zu.
l = list(range(5))
l
[0, 1, 2, 3, 4]
l = [0, 1, 2, 3, 4]
l
[0, 1, 2, 3, 4]
Aufgabe: Hängen Sie der Liste l
noch den Wert 42
an.
Hinweis: Nutzen Sie dafür die Methode .append.
l.append(42)
l
[0, 1, 2, 3, 4, 42]
Aufgabe: Geben Sie das dritte Element der Liste l
aus.
Hinweis: Achten Sie darauf das der erste Index immer 0
ist.
l[2]
2
Aufgabe: Geben Sie das vorletzte Element der Liste l
aus.
Hinweis: Achten Sie darauf das der letzte Index mit -1
ausgegeben wird
l[-2]
4
Dictionaries¶
Aufgabe: Initialisieren Sie die Dictionary Variable my_dict
mit folgendem Mapping:
Key | Value |
---|---|
"apple" |
"Apfel" |
"banana" |
"Banane" |
"cherry" |
"Kirsche" |
my_dict = {"apple": "Apfel", "banana": "Banane", "cherry": "Kirsche"}
Aufgabe: Fügen Sie nun das Key-Value Paar "pear": "Birne"
zu my_dict
hinzu.
my_dict["pear"] = "Birne"
my_dict
{'apple': 'Apfel', 'banana': 'Banane', 'cherry': 'Kirsche', 'pear': 'Birne'}
my_dict.update({"pear": "Birne"})
my_dict
{'apple': 'Apfel', 'banana': 'Banane', 'cherry': 'Kirsche', 'pear': 'Birne'}
Aufgabe: Geben Sie die nur die Werte des Dictionaries my_dict
aus.
print(my_dict.values())
dict_values(['Apfel', 'Banane', 'Kirsche', 'Birne'])
Aufgabe: Geben Sie die Elemente des Dictionaries my_dict
mit der Funktion .items()
aus.
print(my_dict.items())
dict_items([('apple', 'Apfel'), ('banana', 'Banane'), ('cherry', 'Kirsche'), ('pear', 'Birne')])
Funktionen¶
Aufgabe: Schreibe eine Funktion successor
die auf jede Eingabe +1
rechnet.
def successor(n: int) -> int:
return n+1
successor(1)
2
Aufgabe_ Schreibe eine Funktion add
mit den Eingabeparametern a
& b
, welche die Werte von a
& b
miteinander addiert.
def add(a: int, b: int) -> int:
return a+b
add(2, 3)
5
Kontrollstruckturen¶
Aufgabe: Schreibe eine Funktion is_odd
mit einem Eingabeparameter n
die prüft ob die eingegebene Zahl ungerade ist.
Wenn die Zahl gerade ist gebe den Text "Gerade Zahl"
und bei ungerade "Ungerade Zahl"
zurück.
def is_odd(n):
if n % 2 == 0:
return "Gerade Zahl"
else:
return "Ungerade Zahl"
print(is_odd(8), is_odd(7), sep='\n')
Gerade Zahl Ungerade Zahl
Aufgabe: Schreibe eine Funktion faktoriel
mit Eingabeparameter n
, welche die Fakultät der Zahl n
berechnet. Dabei ist die Fakultät definiert als
$$f(n) = n! = 1 \cdot 2 \cdot 3 \cdot ... \cdot n-1 \cdot n$$
Ein Beispiel für die Zahl 5:
$$5! = 1 \cdot 2 \cdot 3 \cdot 4 \cdot 5$$ $$\Rightarrow 5! = 2 \cdot 3 \cdot 4 \cdot 5$$ $$\Rightarrow 5! = 6 \cdot 4 \cdot 5$$ $$\Rightarrow 5! = 24 \cdot 5$$ $$\Rightarrow 5! = 120$$
Für den Fall n=0
ist $0!=1$ für negative (-1) und gebrochene Zahlen (3.14) ist die Fakultät nicht definiert, gebe daher für die Spezialfälle -1
zurück.
def faktoriel(n: int) -> int:
if not isinstance(n, int):
return -1
if n < 0:
return -1
if n == 0:
return 1
count = 1
while n > 0:
count *= n
n -= 1
return count
faktoriel(5)
120
Aufgabe: Schreibe eine Funktion sum_up
, mit Eingabeparameter n
, die einen for
-loop implementiert, welcher die Zahlen von 1...n
aufsummiert.
Hinweis: die Funktion range()
zählt standardmässig von 0...n-1
. Schauen Sie sich gerne dazu die offizielle Dokumentation an PEP 204.
def sum_up(n: int) -> int:
count = 0
for i in range(1,n+1):
count += i
return count
sum_up(100)
5050
Nach Gauß ist: $$\sum_{k=1}^n k = \frac{n(n+1)}{2}$$ Dementsprechen ist dies eine Lösung ohne For Loop:
def sum_up(n: int) -> int:
return int(n*(n+1)/2)
sum_up(100)
5050
Aufgabe: Ihnen ist ein Dictionary gegeben. Ändern Sie jeden Wert in dem Dictionary nach der Formel $f(x) = x^3-1$ mittels for-loop
.
Tipp: Lassen Sie sich nicht von den Schlüsseln verwirren.
dictionary = {"a": 56, 5: 12, "python": 9, 3.14: 1.141414}
for key, value in dictionary.items():
dictionary[key] = value**3-1
dictionary
{'a': 175615, 5: 1727, 'python': 728, 3.14: 0.48706374396146557}
dictionary = {"a": 56, 5: 12, "python": 9, 3.14: 1.141414}
dictionary = {key: value**3-1 for key, value in dictionary.items()}
dictionary
{'a': 175615, 5: 1727, 'python': 728, 3.14: 0.48706374396146557}
Zusatzaufgabe: Erstellen Sie eine List mittels List Comprehension, welche die Zahlen 1...6
auf deren kubische Zahl 1...216
also der Funktion $f(x) = x^3$ abbildet
cubics = [n**3 for n in range(1,7)]
cubics
[1, 8, 27, 64, 125, 216]
Aufgabe: Gegeben sei ein Loop, welcher auf ein IndexError
beim ausführen stößt. Verhindern Sie mittels try-except
das dieser Loop einen Fehler wirft.
l = [2**n for n in range(10)]
s = list()
f = lambda l, i: l[i] - l[i+1]
for i in range(len(l)):
try:
s.append(f(l,i))
except:
continue
s
[-1, -2, -4, -8, -16, -32, -64, -128, -256]
Inputs¶
Aufgabe: Schreibe ein Programm, welches den Input vom User als eine Zahl entgegen nimmt und diese Zahl+2 zurückgibt.
Wichtig ist das der Wert als String zurückgegeben wird und vorher mittels int()
Funktion zu einer Zahl umgewandelt werden muss.
a = int(input("Sag mir eine Zahl"))
print(a+2)
Aufgabe: Erstellen und Öffnen sie eine Datei testfile.txt
mit der open
Funktion, nutzen Sie dafür das with
-Statement. Schreiben Sie in diese Datei 100 mal den String Python\n
.
with open('testfile.txt', 'w') as f:
for _ in range(100):
f.write("Python\n")
Aufgabe: Öffnen Sie die zuvor erstellte Datei testfile.txt
im Lesemodus und weißen Sie den Inhalt der .readlines()
Funktion der Variabeln lines
zu.
lines = None
with open('testfile.txt', 'r') as f:
lines = f.readlines()
print("Länge:", len(lines))
print("Erstes Element:", lines[0])
Länge: 100 Erstes Element: Python
Alternative ohne with
Statement:
lines = None
f = open('testfile.txt', 'r')
lines = f.readlines()
f.close()
print("Länge:", len(lines))
print("Erstes Element:", lines[0])
Länge: 100 Erstes Element: Python
Import¶
Aufgabe: Importiere Python Built-In Library random
und rufe zuerst aus dem Modul die Funktion seed
auf mit dem Eingabewert 42
, und weiße danach der Variable rand
den Wert des Funktionsaufrufes von randint(1,100)
zu.
rand = None
import random
random.seed(42)
rand = random.randint(1,100)
rand
82
Aufgabe: Importieren Sie die Built-In Library datetime
als dt
.
import datetime as dt
dt
<module 'datetime' from '/usr/lib/python3.11/datetime.py'>
Aufgabe: Importieren Sie die Funktion sqrt
aus dem Built-In Modul math
.
from math import sqrt
sqrt
<function math.sqrt(x, /)>