89 lines
2.5 KiB
Python
89 lines
2.5 KiB
Python
from random import choice, randint
|
|
|
|
nazwiska = [
|
|
"Sylwia Ciuruś",
|
|
"Marcelina Janc",
|
|
"Dorota Leśny",
|
|
"Hubert Beker",
|
|
"Albert Budzeń",
|
|
"Bruno Kargol",
|
|
"Olaf Juroszek",
|
|
]
|
|
|
|
class Osoba:
|
|
def __init__(self, name="XXX", age=30, sex="M", status = "Osoba"):
|
|
self.name = name
|
|
self.sex = sex
|
|
self.age = age
|
|
self.miesieczny_przychod = None
|
|
self.status = status
|
|
# print(f"Start obiektu: {id(self)} - plec: {self.sex} wiek: {self.age}")
|
|
|
|
def __str__(self):
|
|
return f"Oto osoba - {self.name} - {self.status=} "
|
|
|
|
def roczne_dochody(self):
|
|
if self.miesieczny_przychod is None:
|
|
return -1
|
|
return 12*self.miesieczny_przychod
|
|
|
|
def miesieczny_przychod_wpisz(self,wartosc):
|
|
if self.miesieczny_przychod is None:
|
|
self.miesieczny_przychod = wartosc
|
|
print(f"Zmieniam na {wartosc}")
|
|
else:
|
|
print("POzostawiam stare")
|
|
|
|
|
|
class Dyrektor(Osoba):
|
|
|
|
def __init__(self,name="Dyrektorskie nazwisko", age=40, sex="M"):
|
|
print("Uruchamiam init dyrektora")
|
|
super().__init__(name, age=age, sex=sex, status="Dyrektor")
|
|
|
|
|
|
def miesieczny_przychod_wpisz(self, wartosc):
|
|
self.miesieczny_przychod = wartosc *2
|
|
print(f"Zmieniam podwójnie dla dyrektora na {self.miesieczny_przychod}")
|
|
|
|
def roczne_dochody(self):
|
|
if self.miesieczny_przychod is None:
|
|
return -2
|
|
return 13*self.miesieczny_przychod
|
|
|
|
# zadanie - zdefiniować klasę Prektykant z rocznym dochodem 3 * miesięczny / -3
|
|
|
|
class Praktykant(Osoba):
|
|
nowy_status = "Praktykant"
|
|
def roczne_dochody(self):
|
|
if self.miesieczny_przychod is None:
|
|
return -3
|
|
return 3 * self.miesieczny_przychod
|
|
|
|
|
|
lista_osob = []
|
|
for nr in range(10):
|
|
wiek = randint(20,50)
|
|
plec = choice(["M","K","X"])
|
|
nazwisko = choice(nazwiska)
|
|
osoba = Osoba(nazwisko, sex=plec, age=wiek)
|
|
lista_osob.append(osoba)
|
|
|
|
# pojedynczy dyrektor
|
|
dyro = Dyrektor()
|
|
lista_osob.append(dyro)
|
|
|
|
praktyk = Praktykant("Adam praktykant", age=30, sex="X")
|
|
lista_osob.append(praktyk)
|
|
|
|
print(lista_osob)
|
|
print("----------------------")
|
|
for obiekt_osoby in lista_osob:
|
|
mc = randint(2000,5000)
|
|
print(obiekt_osoby)
|
|
print(f"Roczny dochód wynosi przed: {obiekt_osoby.roczne_dochody()}")
|
|
obiekt_osoby.miesieczny_przychod_wpisz(200)
|
|
obiekt_osoby.miesieczny_przychod_wpisz(300)
|
|
# obiekt_osoby.miesieczny_przychod = "zero" -tak nie robimy!
|
|
print(f"Roczny dochód wynosi po : {obiekt_osoby.roczne_dochody()}")
|