From d212cd913e7c808f57dd862300f7b19e11cab3a4 Mon Sep 17 00:00:00 2001
From: Hong-Phuc Bui <hong-phuc.bui@htwsaar.de>
Date: Mon, 15 Jul 2024 12:26:11 +0200
Subject: [PATCH] turtle vererbung
---
datei-idiome/tests/wettercdc/WetterStation_tests.py | 19 ++++
.gitignore | 5
turtle-geo-inheritance/src/turtlegeo/TtGeo.py | 11 ++
study-effort/.gitignore | 3
study-effort/src/mystudy/main.py | 2
turtle-geo-inheritance/.gitignore | 3
datei-idiome/file-lesen.py | 8 ++
/dev/null | 28 -------
study-effort/src/mystudy/lecture.py | 5
turtle-geo-inheritance/src/turtlegeo/main.py | 5
datei-idiome/tests/wettercdc/__init__.py | 0
datei-idiome/src/wettercdc/__init__.py | 0
oop/imutable-object/money.py | 25 ++++++
oop/imutable-object/money_test.py | 15 +++
datei-idiome/tests/__init__.py | 0
datei-idiome/src/wettercdc/search_station.py | 19 ++++
datei-idiome/pyproject.toml | 15 +++
datei-idiome/src/wettercdc/WetterStation.py | 23 +++++
study-effort/src/mystudy/LecruresConverter.py | 7 +
19 files changed, 156 insertions(+), 37 deletions(-)
diff --git a/.gitignore b/.gitignore
index 17c2bab..f839ed4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,5 @@
sandbox*
queens*
*.venv*
-
-
- |test|
\ No newline at end of file
+__pycache__/
+.idea/
diff --git a/datei-idiome/file-lesen.py b/datei-idiome/file-lesen.py
new file mode 100644
index 0000000..3cb1638
--- /dev/null
+++ b/datei-idiome/file-lesen.py
@@ -0,0 +1,8 @@
+import sys
+
+filename = sys.argv[1]
+
+with open(filename, 'r') as f:
+ for line in f.readlines():
+ print(line.strip())
+ pass
\ No newline at end of file
diff --git a/datei-idiome/pyproject.toml b/datei-idiome/pyproject.toml
new file mode 100644
index 0000000..762bbb6
--- /dev/null
+++ b/datei-idiome/pyproject.toml
@@ -0,0 +1,15 @@
+[build-system]
+requires = ["setuptools"]
+build-backend = "setuptools.build_meta"
+
+[project]
+name = "wettercdc"
+version = "0.0.1"
+
+[tool.setuptools.packages.find]
+# All the following settings are optional:
+where = ["src"]
+
+# [project.scripts]
+# mystudy = "mystudy.main:start"
+
diff --git a/datei-idiome/src/wettercdc/WetterStation.py b/datei-idiome/src/wettercdc/WetterStation.py
new file mode 100644
index 0000000..2cffd02
--- /dev/null
+++ b/datei-idiome/src/wettercdc/WetterStation.py
@@ -0,0 +1,23 @@
+import re
+
+class WetterStation:
+ """
+ represents a Weather station
+ """
+ def __init__(self, station_line: str):
+ fields = re.split(r"\s+", station_line.strip())
+ self._id = fields[0]
+ self._bundesland = fields[-1]
+ self._name = fields[-2]
+
+ def id(self):
+ return self._id
+
+ def name(self):
+ return self._name
+
+ def bundesland(self):
+ return self._bundesland
+
+ pass
+
diff --git a/datei-idiome/src/wettercdc/__init__.py b/datei-idiome/src/wettercdc/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/datei-idiome/src/wettercdc/__init__.py
diff --git a/datei-idiome/src/wettercdc/search_station.py b/datei-idiome/src/wettercdc/search_station.py
new file mode 100644
index 0000000..c8ad675
--- /dev/null
+++ b/datei-idiome/src/wettercdc/search_station.py
@@ -0,0 +1,19 @@
+# suche aus Beschreibung die Station aus gewünsche Bundesland
+import sys
+
+from wettercdc.WetterStation import WetterStation
+
+filename = sys.argv[1]
+stations = []
+
+with open(filename, 'r') as f:
+ ignore_lines = 2
+ for i in range(ignore_lines):
+ f.readline()
+
+ for line in f.readlines():
+ #TODO: mach was mit line
+ stations.append( WetterStation(line) )
+ pass
+
+print('DONE', len(stations))
diff --git a/datei-idiome/tests/__init__.py b/datei-idiome/tests/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/datei-idiome/tests/__init__.py
diff --git a/datei-idiome/tests/wettercdc/WetterStation_tests.py b/datei-idiome/tests/wettercdc/WetterStation_tests.py
new file mode 100644
index 0000000..9158c9c
--- /dev/null
+++ b/datei-idiome/tests/wettercdc/WetterStation_tests.py
@@ -0,0 +1,19 @@
+import unittest
+from typing import Final
+
+from wettercdc.WetterStation import WetterStation
+
+
+class WetterStationCase(unittest.TestCase):
+ def test_constructor(self):
+ line:Final[str] = """00020 20040812 20240701 432 48.9219 9.9129 Abtsgmünd-Untergröningen Baden-Württemberg
+"""
+ station = WetterStation(line)
+ self.assertEqual(station.id(), '00020')
+ self.assertEqual(station.name(), "Abtsgmünd-Untergröningen")
+ self.assertEqual(station.bundesland(), "Baden-Württemberg")
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/datei-idiome/tests/wettercdc/__init__.py b/datei-idiome/tests/wettercdc/__init__.py
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/datei-idiome/tests/wettercdc/__init__.py
diff --git a/oop/imutable-object/money.py b/oop/imutable-object/money.py
new file mode 100644
index 0000000..0b6be40
--- /dev/null
+++ b/oop/imutable-object/money.py
@@ -0,0 +1,25 @@
+class Money:
+ def __init__(self, euro: int, cent: int = 0 ):
+ if euro < 0:
+ raise ValueError("Betrag ungültig")
+ if euro == 0 and cent == 0:
+ raise ValueError("Betrag ungültig")
+ if cent < 0:
+ raise ValueError("Betrag ungültig")
+
+ self._betrag = euro * 100 + cent # in cent
+ self._euro, self._cent = divmod(self._betrag, 100)
+ pass
+
+
+ def normalize(self) -> str:
+ return f"{self._euro}€{self._cent}c"
+
+ def __repr__(self):
+ return self.normalize()
+
+ def getEuro(self):
+ return self._euro
+
+ def add(self, euro):
+ return Money(self._euro + euro, self._cent)
\ No newline at end of file
diff --git a/oop/imutable-object/money_test.py b/oop/imutable-object/money_test.py
new file mode 100644
index 0000000..b20c2d7
--- /dev/null
+++ b/oop/imutable-object/money_test.py
@@ -0,0 +1,15 @@
+import unittest
+
+
+class MyTestCase(unittest.TestCase):
+ def test_something(self):
+ benzin_preis = Money(12, 5)
+
+ milch_preis = Money(3)
+ katoffel_p = Money(0, 501)
+ pass
+
+
+
+if __name__ == '__main__':
+ unittest.main()
diff --git a/study-effort/.gitignore b/study-effort/.gitignore
new file mode 100644
index 0000000..b0837d2
--- /dev/null
+++ b/study-effort/.gitignore
@@ -0,0 +1,3 @@
+__pycache__
+*.egg-info/
+.idea/
\ No newline at end of file
diff --git a/study-effort/dem-vorlesung.html b/study-effort/dem-vorlesung.html
deleted file mode 100644
index e6454e9..0000000
--- a/study-effort/dem-vorlesung.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!DOCTYPE html>
-<html lang="en">
-<head>
- <meta charset="UTF-8">
- <title>Vorlesung</title>
-</head>
-<body>
-
-<table>
- <tr>
- <td>Mathematik</td>
- <td>2.5</td>
- <td>5</td>
- </tr>
- <tr>
- <td>Prog 2</td>
- <td>2.0</td>
- <td>5</td>
- </tr>
- <tr>
- <td>Informatik 2</td>
- <td>2.0</td>
- <td>5</td>
- </tr>
-</table>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/study-effort/src/mystudy/LecruresConverter.py b/study-effort/src/mystudy/LecruresConverter.py
new file mode 100644
index 0000000..d484890
--- /dev/null
+++ b/study-effort/src/mystudy/LecruresConverter.py
@@ -0,0 +1,7 @@
+from mystudy.lecture import Lecture
+
+
+class LecturesConvert:
+ def covert(self, lectures: list[Lecture]) -> str:
+ pass
+
diff --git a/study-effort/src/mystudy/lecture.py b/study-effort/src/mystudy/lecture.py
index 64de7ca..5856cfc 100644
--- a/study-effort/src/mystudy/lecture.py
+++ b/study-effort/src/mystudy/lecture.py
@@ -1,6 +1,7 @@
from typing import Final
from mystudy.DataFormatError import DataFormatError
+from mystudy.LecruresConverter import LecturesConvert
lecture_time: Final[int] = 15
ects_effort: Final[int] = 30
@@ -56,7 +57,7 @@
pass
-class Lecture2HTMLConverter:
+class Lecture2HTMLConverter(LecturesConvert):
def __init__(self):
self.__head = """<!DOCTYPE html>
<html lang="en">
@@ -70,7 +71,7 @@
</html>
"""
- def to_html(self, lectures: list[Lecture]) -> str:
+ def convert(self, lectures: list[Lecture]) -> str:
html = ""
for l in lectures:
html += f"""<tr>
diff --git a/study-effort/src/mystudy/main.py b/study-effort/src/mystudy/main.py
index 2110e83..9195a37 100644
--- a/study-effort/src/mystudy/main.py
+++ b/study-effort/src/mystudy/main.py
@@ -23,7 +23,7 @@
lectures = read_file_to_lecture(filename)
if lectures is not None:
converter = Lecture2HTMLConverter()
- html_code = converter.to_html(lectures)
+ html_code = converter.convert(lectures)
print(html_code)
except FileNotFoundError:
print(f"Datei '{filename}' nicht gefunden")
diff --git a/turtle-geo-inheritance/.gitignore b/turtle-geo-inheritance/.gitignore
new file mode 100644
index 0000000..b0837d2
--- /dev/null
+++ b/turtle-geo-inheritance/.gitignore
@@ -0,0 +1,3 @@
+__pycache__
+*.egg-info/
+.idea/
\ No newline at end of file
diff --git a/turtle-geo-inheritance/src/turtlegeo/TtGeo.py b/turtle-geo-inheritance/src/turtlegeo/TtGeo.py
index 5a248c0..6e63476 100644
--- a/turtle-geo-inheritance/src/turtlegeo/TtGeo.py
+++ b/turtle-geo-inheritance/src/turtlegeo/TtGeo.py
@@ -15,4 +15,13 @@
self.setheading(head)
pass
- pass
\ No newline at end of file
+ def pentagon(self, length, x, y):
+ alpha = 72
+ self.teleport(x, y)
+ head = self.heading()
+ for i in range(0, 5):
+ self.forward(length)
+ self.left(alpha)
+ self.setheading(head)
+ pass
+
diff --git a/turtle-geo-inheritance/src/turtlegeo/main.py b/turtle-geo-inheritance/src/turtlegeo/main.py
index 31ac99f..b58a3ed 100644
--- a/turtle-geo-inheritance/src/turtlegeo/main.py
+++ b/turtle-geo-inheritance/src/turtlegeo/main.py
@@ -7,6 +7,7 @@
def main():
t = TtGeo()
t.triangle(50, 20, 25)
- t.circle(50)
- t.dot(25)
+ t.pentagon(60, 20, 25)
+
+
t.screen.mainloop()
--
Gitblit v1.10.0