Kurs Python od Podstaw
Nie jesteś zalogowany na forum.
Strony: 1
# zad 1 Utworz Klase Osoba, posaidajaca typy dla : Imie, Nazwisko, Rok Urodzenia, Plec, Adres zamieszkania (string), pensja
# zad 2 Utworz W klasie osoba metode obliczajaca wiek danej osoby, wypisujaca inicjaly, wypisujacac wiek emerytalny (dla kobiet inaczej niz mezczyzn)
# zad 3 Utworz w klasie Osoba dedykowany konstruktor ktory pozwoli fabrykowac pola
# zad 4 Utworz w klasie osoba metode __str__ zwracajaca sensowna reprezentacjae tekstowa danego obiektu
# zad 5 Utworz obiekt tej klasy sprawdz wszysteki powyzsze funckjonalnosci
# zad 6 Stworz liste 5 SENSOWNIE utworzonych obiekow
# zad 7 Znajdz osobe najstarsza i wypisz jej inicjaly
# zad 8 posortuj osoby wzgledem wieku
# zad 9 Utworz dwie listy: mezczyzni i kobiety
# zad 10 Posortuj osoby wzgledem stosunku pensji do ich wieku
Offline
Offline
# zad 11 Zamien Adres zamieszkania na oddzielna klase
# zad 12 Klasa adres zamieszkania ma reprezentowana byc przez ulice, numer, kod pocztowy, miasto
# zad 13 zaimplmentuj funkcje ktora sprawdzi czy kod pocztowy jest z ogolnie przyjetymi zasadami zgodny 2 cyfry, myslnik 3 cyfry
# zad 14 przerob zadania z obiektami Osoba tak by Osoba miala obiekt klasy lokalziacja w sobie
# zad 15 Znajdz grupy osob mieszkajace na tej samej ulicy (rozwaz sytuacje ze rozne miasta moga miec ta sama ulice)
# zad 16 w Ktorym miescie mieszka najwiecej zarejestrowanych osob w naszym systemie ?
# zad 17 Utworz klase Grupa posiadajaca pola: nazwa grupy, opis, lista czlonkow (obiekty klasy osoba), Osoba zarzadzjaca grupa, Osoba bedaca skarbnikiem grupy
# zad 18 Utworz 3 rozne grupy
# zad 19 Utworz metode dajaca mozliwosc przydzielenie nowej osoby do grupy, pod warunkiem ze dana osoba nie jest juz czlonkiem tej lub innej grupy, dana osoba nie moze byc tez osoba zarzadzajaca inna grupa
# zad 20 osoba zrzadzjaca to nie czlonek grupy, utworz metode pozwalajaca przekwalifikowac czlonka grupy na zarzadce i odwrotnie (czlonek staje sie zarzadca, przeste byc czlonkiem, a zarzadca staje sie czlonkiem)
# zad 21 Dodaj metode pozwalajaca ustawic skarbnika, przy zalozeniu ze skarbnik musi byc czlonkiem grupy, analogicznie nie moze byc osoba zarzadzajaca
# zad 22 (20-21) Jesli osoba bedaca czlonkiem i jednoczesnie skarbnikiem ma zostac mianowana na zarzadce grupy, wyrzuc blad i powiadom o braku mozliwosci mianowania
# *Zad 23 Jak autonumerowac wszystkie osoby tworzone ?
Offline
Rozwiązania Zadan 17-22 (Prowadzący):
class Grupa:
wszyscy_czlonkowie = list()
def __init__(self, nazwa, opis, lista_czlonkow, osoba_zarzadzajaca):
self.nazwa = nazwa
self.lista_czlonkow = lista_czlonkow
self.opis = opis
self.osoba_zarzadzajaca = osoba_zarzadzajaca
Grupa.wszyscy_czlonkowie.extend(self.lista_czlonkow)
self.skarbnik = None
def ilosc_czlonkow(self):
return len(self.lista_czlonkow)
def __str__(self):
return f'Nazwa grupy: {self.nazwa}, Ilosc czlonkow: {self.ilosc_czlonkow()}'
def __repr__(self):
return f'Nazwa grupy: {self.nazwa}'
def przydziel_nowa_osobe(self, nowa_osoba):
if nowa_osoba not in Grupa.wszyscy_czlonkowie:
Grupa.wszyscy_czlonkowie.append(nowa_osoba)
self.lista_czlonkow.append(nowa_osoba)
def przekwalifikuj(self, nowy_zarzadca):
if self.skarbnik == nowy_zarzadca:
raise Exception('Osoba nie moze pelnic jednoczesnie funckji skarbnika i zarzadcy')
else:
self.lista_czlonkow.remove(nowy_zarzadca)
self.lista_czlonkow.append(self.osoba_zarzadzajaca)
self.osoba_zarzadzajaca = nowy_zarzadca
def mianuj_skarbnika(self, nowy_skarbnik):
if nowy_skarbnik in self.lista_czlonkow:
self.skarbnik = nowy_skarbnik
class Osoba:
def __init__(self, imie, nazwisko, rok_urodzenia, plec, adres_zamieszkania, pensja):
self.imie = imie
self.nazwisko = nazwisko
self.rok_urodzenia = rok_urodzenia
self.plec = plec
self.adres_zamieszkania = adres_zamieszkania
self.pensja = pensja
def __str__(self):
return f'Imie: {self.imie}, Nazwisko: {self.nazwisko}, Pensja: {self.pensja}'
def __repr__(self):
return f'Imie: {self.imie}, Nazwisko: {self.nazwisko}'
osoba1 = Osoba('Jan', 'Kowalski', 1987, True, 'Krakow', 7600)
osoba2 = Osoba('Janek', 'Szczypanski', 1955, True, 'Ciechocinek', 8900)
osoba3 = Osoba('Darek', 'Markowski', 2010, True, 'Wroclaw', 10000)
osoba4 = Osoba('Marek', 'Babacki', 1987, True, 'Szczecin', 2500)
osoba5 = Osoba('Bartek', 'Cabacki', 1996, True, 'Poznan', 3000)
osoba6 = Osoba('Stas', 'Abacki', 1982, True, 'Warszawa', 4000)
osoba7 = Osoba('Bogdan', 'Jankowski', 2001, True, 'Warszawa', 5000)
osoba8 = Osoba('Ola', 'Kowalska', 2000, False, 'Koszalin', 20000)
lista_cz_1 = [osoba2, osoba3]
lista_cz_2 = [osoba4]
lista_cz_3 = [osoba5, osoba6]
grupa_1 = Grupa('AA', 'Anonimowi alkoholicy', lista_cz_1, osoba1)
grupa_2 = Grupa('TO', 'Towarzystwo opieki nad zwierzetami', lista_cz_2, osoba7)
grupa_3 = Grupa('WO', 'Wielbiciele oliwek', lista_cz_3, osoba8)
grupa_1.mianuj_skarbnika(osoba2)
grupa_1.przekwalifikuj(osoba2)
Offline
# zad 24 Grupy moge tworzyc miedzy soba spotkania, chcemy zarpoponowac system w ktorym bedziemy przechowywali informacje o spotkaniu:
# - dokladna godzina i dzien rozpoczecia spotkania
# - dokladna godzina i dzien zakonczenia spotkania
# - grupy biorace udzial w spotkaniu
# - napisz metode obliczajaca w minutach calkowity czas spotkania
# - napisz metode zwracajaca inforamcje o tym ile trzbea bylo zamowic 'talerzykow' na poczestunek (liczba czlonkow + zarzadca)
# - budzet na dane spotkanie
Offline
ZAD 24 - liczenie czasu w minutach (moje rozwiązanie):
startG = int(input('Wstaw godzine startu: '))
startM = int(input('Wstaw Minute startu: '))
endG = int(input('Wstaw godzine zakonczenia: '))
endM = int(input('Wstaw minute zakonczenia: '))
#Stringi:
s_startG = str(startG)
s_startM = str(startM)
s_endG = str(endG)
s_endM = str(endM)
print('Godzina rozpoczecia spotkania: ' + s_startG + ':' + s_startM)
print('Godzina zaknczenia spotkania: ' + s_endG + ':' + s_endM)
#Minuty
start = startG * 60 + startM
end = endG * 60 + endM
czas = end-start
s_czas = str(czas)
print('Czas spotkania to: ' + s_czas + ' minut')
Offline
Strony: 1