From 1339e392489a52f56430a734148ad35021917063 Mon Sep 17 00:00:00 2001 From: Dennis Eggen <3019773@stud.hs-mannheim.de> Date: Sun, 14 Dec 2025 17:50:33 +0100 Subject: [PATCH] Adding next chapter and Assignment and initial README.md --- python/03_python_extended/dictionary.py | 18 ++++++ .../03_python_extended/klassen_funktionen.py | 58 +++++++++++++++++++ python/03_python_extended/listen.py | 51 ++++++++++++++++ python/03_python_extended/sets.py | 19 ++++++ python/03_python_extended/tupel.py | 8 +++ python/Aufgabenstellung.md | 7 +++ python/README.md | 16 +++++ 7 files changed, 177 insertions(+) create mode 100644 python/03_python_extended/dictionary.py create mode 100644 python/03_python_extended/klassen_funktionen.py create mode 100644 python/03_python_extended/listen.py create mode 100644 python/03_python_extended/sets.py create mode 100644 python/03_python_extended/tupel.py create mode 100644 python/Aufgabenstellung.md create mode 100644 python/README.md diff --git a/python/03_python_extended/dictionary.py b/python/03_python_extended/dictionary.py new file mode 100644 index 0000000..ac7b6d1 --- /dev/null +++ b/python/03_python_extended/dictionary.py @@ -0,0 +1,18 @@ +#Dictionary (Map) +#Erstellen des Dictionarys +persons = {"Alice":30, "Bob":25} +print(persons) + +#Hinzufügen neuer Wert +persons["Peter"] = 40 + +#Ändern eines Values +persons["Bob"] = 45 + +#Löschen eines Elements mithilfe von Key +persons.pop("Bob") +print(persons) + +#Löschen des letzten Wertes mit Rückgabe +key,value = persons.popitem() +print(key, value) \ No newline at end of file diff --git a/python/03_python_extended/klassen_funktionen.py b/python/03_python_extended/klassen_funktionen.py new file mode 100644 index 0000000..1fc1fac --- /dev/null +++ b/python/03_python_extended/klassen_funktionen.py @@ -0,0 +1,58 @@ +#Klassische Situation mit Klasse und Konstruktor __init__ ist dabei Konstruktor +#self ist vergleichbar mit this aus java +class Person: + def __init__(self, name, age): + self.name = name + self.age = age + def ausgabe(self): + print(self.name, self.age) + +#Instanz von Person und anwenden der Funktion +p1 = Person("Peter", 30) +p1.ausgabe() + +#Funktion anlegen ohne Typen +def rechne(a, b): + return a+b + +#Funktion mit Typen +def rechne1(a: int, b: int) -> int: + return a+b + +print(rechne(1, 2)) +print(rechne1(1, 2)) + +#Python erlaubt Mehrfachvererbung +class A: pass +class B: pass +class C(A, B): pass + +#Einfache Art und Weise der Nutzung von Lambdaausdrücken +square = lambda x: x*x +print(square(5)) + +def func(a,b): + return a+b + +print(func(10, 2)) + +def func(a): + return a*a + +#print(func(10, 2)) Dies funktioniert nicht, die die untere die obere überschreibt! +print(func(10)) + +#funktionen als objekte +def apply(func, value): + return func(value) +print(apply(lambda x: x+1, 5)) + +#enums +from enum import Enum +class Status(Enum): + OK = 1 + NOT_FOUND = 2 + ERROR = 3 + +print(Status.OK.value) +print(Status.OK) \ No newline at end of file diff --git a/python/03_python_extended/listen.py b/python/03_python_extended/listen.py new file mode 100644 index 0000000..caccf55 --- /dev/null +++ b/python/03_python_extended/listen.py @@ -0,0 +1,51 @@ +#In diesem Abschnitt soll es um Listen in Python gehen + +#Listen anlegen +nums = [1,2,3,4] + +#Zur Liste hinzufügen +nums.append(5) + +# ausgabe von Listenelementen +print(nums) +print(nums[2]) +print(nums[2:5]) + +#Einfügen eines Listenelements +nums.insert(1, 20) + +#Einfügen mehrerer Listenelemente +nums.extend([7,8,9]) + +#Pop des letzten Elements +numTest = nums.pop() +print (numTest) + +#Pop des Elements an erster stelle +numTest2 = nums.pop(1) +print(numTest2) + +#Leeren der Liste +nums.clear() +print(nums) + +#mutability von Listen +a = [1,2,3] +b=a +b.append(4) +print(a) +#b verweist auf a und änderungen werden auf a durchgeführt +#es werden referenzen übergeben +c = a.copy() +c.append(5) +print(a, c) + +#Erweiterte Listen +liste = [1, "abc", 3.5] +print(liste) + +#Erweitertes erstellen von Listen +nums = [1,2,3,4,5,6] +#in erstellungsanweisungen können for schleifen und if abfragen verwendet werden +squares = [x*x for x in nums if x%2 == 0] +print(squares) diff --git a/python/03_python_extended/sets.py b/python/03_python_extended/sets.py new file mode 100644 index 0000000..3f5fc1e --- /dev/null +++ b/python/03_python_extended/sets.py @@ -0,0 +1,19 @@ +#Sets +values = {1,2,2,3} +print (values) + +#Hinzufügen einzelner werte +values.add(4) + +#hinzufügen einer liste +values.update([5,6,7]) + +#entfernen eines elements mit wert 1 (unsicher, wirft fehler falls nicht vorhanden) +values.remove(1) + +#entfernen eines elements mit wert 2 (sicher, keine Fehler falls es nicht existiert) +values.discard(2) + +#entfernt ein beliebiges Element +values.pop() +print(values) \ No newline at end of file diff --git a/python/03_python_extended/tupel.py b/python/03_python_extended/tupel.py new file mode 100644 index 0000000..7874343 --- /dev/null +++ b/python/03_python_extended/tupel.py @@ -0,0 +1,8 @@ +#Tupel +point = (3,4,5) +x,y,z = point +print(x,y,z) + +points = [(3,4), (5,6), (7,8)] +a, b = points[2] +print(points, points[2], a, b) diff --git a/python/Aufgabenstellung.md b/python/Aufgabenstellung.md new file mode 100644 index 0000000..e5107d9 --- /dev/null +++ b/python/Aufgabenstellung.md @@ -0,0 +1,7 @@ +# Aufgabenstellung + +1. Schreiben Sie eine Listenberechnung in Python, bei der die Zahlen `[1,2,3,4,5,6,7,8,9]` quadriert werden, wenn diese gerade sind. +2. Gegeben ist folgender Ausdruck `persons = {"Alice":30, "Bob":45, "Charlie":18}` schreiben Sie dazu eine Funktion, die das Durchschnittsalter berechnet. +3. Schreiben Sie eine Klasse Person mit den Attributen `name` und `alter` und eine Funktion `is_adult`, die prüft ob eine Person erwachsen ist. +4. Schreiben Sie eine Funktion `applyToList`, die eine Funktion und eine Liste entgegen nimmt und die Funktion auf alle Elemente der Liste anwendet (Tipp: Lambda). +5. Schreiben Sie einen Taschenrechner, der über die Kommandozeile bedient werden kann und die Grundrechenarten beherrscht. \ No newline at end of file diff --git a/python/README.md b/python/README.md new file mode 100644 index 0000000..ad9d58f --- /dev/null +++ b/python/README.md @@ -0,0 +1,16 @@ +# Python Code Repository + +This Repository contains examples of how to use most basics in python. Everything shown in our presentation is also shown in this repo. + +## Usage + +This container is very similar to other devcontainers. + +Follow these steps to get started: + +1. Clone this repository to a local folder of your choice. +2. Navigate to this exact location to open the python container. +3. Open Visual Studio Code in this folder. +4. Click *Reopen in Container*. + +To start any python program use the command `python ./dateiname.py` and it will be executed. \ No newline at end of file