Skip to content

Commit a048b61

Browse files
author
Björn Kötter
committed
final commit for today
1 parent 3886a1c commit a048b61

File tree

4 files changed

+101
-0
lines changed

4 files changed

+101
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
from dataclasses import dataclass
2+
3+
4+
@dataclass
5+
class Kleidung:
6+
preis: float
7+
farbe: str

VHS/Kurs4/people/main.py

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
from datetime import datetime
2+
3+
from VHS.Kurs4.people.mensch import Person, Counter
4+
5+
6+
def main():
7+
lfd_nummer: Counter = Counter()
8+
personen: dict = {
9+
'adam': Person(ledig=True, wohnort='Hamburg', gewicht=74.5, vorname='Adam', nachname='Bibel',
10+
geschlecht='m', geburtsdatum=datetime(1973, 12, 12), nummer=lfd_nummer),
11+
'eva': Person(ledig=True, wohnort='Hamburg', gewicht=58.7, vorname='Eva', nachname='Friedrich',
12+
geschlecht='w', geburtsdatum=datetime(1973, 10, 22), nummer=lfd_nummer),
13+
}
14+
15+
for person in personen:
16+
alter: datetime = personen[person].geburtsdatum
17+
print(f'{personen[person].vorname:4} ist {(datetime.now() - alter).days} Tage alt.')
18+
print(personen[person])
19+
20+
personen['adam'].geschlechtsumwandlung()
21+
print(f'Adam ist jetzt {personen["adam"].geschlecht} und heißt {personen["adam"].vorname}')
22+
23+
# personen['adam'].ask_alter()
24+
print(f"{personen['adam'].vorname} ist tatsächlich {personen['adam'].get_alter()} Jahre alt")
25+
26+
print(personen['adam'].heiratet(personen['eva']))
27+
print(personen['adam'].wird_beschrieben())
28+
print(personen['eva'].wird_beschrieben())
29+
30+
31+
if __name__ == '__main__':
32+
main()

VHS/Kurs4/people/mensch/__init__.py

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
from dataclasses import dataclass
2+
from datetime import datetime
3+
4+
5+
@dataclass()
6+
class Counter:
7+
def __init__(self):
8+
self.number = None
9+
10+
11+
@dataclass()
12+
class Mensch:
13+
geschlecht: str
14+
geburtsdatum: datetime
15+
16+
17+
@dataclass()
18+
class Person(Mensch):
19+
ledig: bool
20+
wohnort: str
21+
gewicht: float
22+
vorname: str
23+
nachname: str
24+
nummer: Counter
25+
_genanntes_alter: int = 0
26+
27+
def heiratet(self, partner):
28+
if self == partner:
29+
return f'{self.vorname} kann sicht nicht selbst heiraten.'
30+
if not self.ledig and partner.ledig:
31+
return f'Können nicht heiraten, da nicht beide ledig sind.'
32+
partner.nachname = "-".join([self.nachname, partner.nachname])
33+
self.nachname = partner.nachname
34+
self.ledig, partner.ledig = False, False
35+
return f'{self.vorname} und {partner.vorname} können heiraten'
36+
37+
def ask_alter(self) -> None:
38+
while True:
39+
try:
40+
self._genanntes_alter = int(input(f'Wie alt ist {self.vorname}? '))
41+
break
42+
except ValueError:
43+
print('Eingabe muss numerisch sein.')
44+
45+
def get_alter(self) -> int:
46+
if self.geschlecht == 'w':
47+
return self._genanntes_alter + 10
48+
return self._genanntes_alter
49+
50+
def wird_beschrieben(self) -> str:
51+
return f'Es handelt sich um: {self.vorname}, {self.nachname}, {self.geburtsdatum.strftime("%d.%m.%Y")}, Ledig: {self.ledig}'
52+
53+
def __str__(self):
54+
return f'{self.vorname} {self.nachname}, geboren: {self.geburtsdatum}'
55+
56+
def geschlechtsumwandlung(self) -> None:
57+
if self.geschlecht == 'm':
58+
self.geschlecht = 'w'
59+
self.vorname = 'Carmen'
60+
elif self.geschlecht == 'w':
61+
self.geschlecht = 'm'
62+
self.vorname = 'Markus'

VHS/Kurs4/people/mensch/person.py

Whitespace-only changes.

0 commit comments

Comments
 (0)