plan na czwartek
This commit is contained in:
88
dzien_04/przyklady/klasa_osoba_05.py
Normal file
88
dzien_04/przyklady/klasa_osoba_05.py
Normal file
@@ -0,0 +1,88 @@
|
||||
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()}")
|
||||
Reference in New Issue
Block a user