Hong-Phuc Bui
2024-07-15 d212cd913e7c808f57dd862300f7b19e11cab3a4
turtle vererbung
5 files modified
13 files added
1 files deleted
193 ■■■■ changed files
.gitignore 5 ●●●●● patch | view | raw | blame | history
datei-idiome/file-lesen.py 8 ●●●●● patch | view | raw | blame | history
datei-idiome/pyproject.toml 15 ●●●●● patch | view | raw | blame | history
datei-idiome/src/wettercdc/WetterStation.py 23 ●●●●● patch | view | raw | blame | history
datei-idiome/src/wettercdc/__init__.py patch | view | raw | blame | history
datei-idiome/src/wettercdc/search_station.py 19 ●●●●● patch | view | raw | blame | history
datei-idiome/tests/__init__.py patch | view | raw | blame | history
datei-idiome/tests/wettercdc/WetterStation_tests.py 19 ●●●●● patch | view | raw | blame | history
datei-idiome/tests/wettercdc/__init__.py patch | view | raw | blame | history
oop/imutable-object/money.py 25 ●●●●● patch | view | raw | blame | history
oop/imutable-object/money_test.py 15 ●●●●● patch | view | raw | blame | history
study-effort/.gitignore 3 ●●●●● patch | view | raw | blame | history
study-effort/dem-vorlesung.html 28 ●●●●● patch | view | raw | blame | history
study-effort/src/mystudy/LecruresConverter.py 7 ●●●●● patch | view | raw | blame | history
study-effort/src/mystudy/lecture.py 5 ●●●●● patch | view | raw | blame | history
study-effort/src/mystudy/main.py 2 ●●● patch | view | raw | blame | history
turtle-geo-inheritance/.gitignore 3 ●●●●● patch | view | raw | blame | history
turtle-geo-inheritance/src/turtlegeo/TtGeo.py 11 ●●●●● patch | view | raw | blame | history
turtle-geo-inheritance/src/turtlegeo/main.py 5 ●●●●● patch | view | raw | blame | history
.gitignore
@@ -1,6 +1,5 @@
sandbox*
queens*
*.venv*
    |test|
__pycache__/
.idea/
datei-idiome/file-lesen.py
New file
@@ -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
datei-idiome/pyproject.toml
New file
@@ -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"
datei-idiome/src/wettercdc/WetterStation.py
New file
@@ -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
datei-idiome/src/wettercdc/__init__.py
datei-idiome/src/wettercdc/search_station.py
New file
@@ -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))
datei-idiome/tests/__init__.py
datei-idiome/tests/wettercdc/WetterStation_tests.py
New file
@@ -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()
datei-idiome/tests/wettercdc/__init__.py
oop/imutable-object/money.py
New file
@@ -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)
oop/imutable-object/money_test.py
New file
@@ -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()
study-effort/.gitignore
New file
@@ -0,0 +1,3 @@
__pycache__
*.egg-info/
.idea/
study-effort/dem-vorlesung.html
File was deleted
study-effort/src/mystudy/LecruresConverter.py
New file
@@ -0,0 +1,7 @@
from mystudy.lecture import Lecture
class LecturesConvert:
    def covert(self, lectures: list[Lecture]) -> str:
        pass
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>
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")
turtle-geo-inheritance/.gitignore
New file
@@ -0,0 +1,3 @@
__pycache__
*.egg-info/
.idea/
turtle-geo-inheritance/src/turtlegeo/TtGeo.py
@@ -15,4 +15,13 @@
        self.setheading(head)
        pass
    pass
    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
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()