W tym e‑materiale utworzymy funkcję przetwarzającą zdefiniowaną przez nas strukturę danych. W tym celu posłużymy się przykładem starającego się o kredyt klienta banku.

Polecenie 1

Przygotuj dla klienta banku informację o udzieleniu mu kredytu bądź odrzuceniu jego wniosku kredytowego.

Do tego celu wykorzystamy informacje, które w programie będą reprezentowane przez różne typy danych.

Informacja

Typ

imię i nazwisko klienta

str

e‑mail kontaktowy

str

kredyt – całkowita kwota, o jaką wnioskuje klient

int

liczba rat w roku, o jaką wnioskuje klient

int

liczba lat spłaty kredytu

int

miesięczne zarobki netto

float

miesięczne koszty utrzymania (mieszkanie, jedzenie)

float

ewentualne spłaty innych kredytów w miesiącu (łączna kwota)

float

maksymalny limit wysokości raty kredytu względem dochodów (wyrażony w procentach)

int

liczba dzieci na utrzymaniu

int

Przykład 1

Oto przykładowy zapis struktury słownikowej dict dla wymienionych informacji:

Linia 1. informacja znak równości otwórz nawias klamrowy. Linia 2. cudzysłów imie podkreślnik nazwisko cudzysłów dwukropek cudzysłów Adam Jurkiewicz cudzysłów przecinek. Linia 3. cudzysłów email cudzysłów dwukropek cudzysłów adam kropka jurkiewicz at domena minus edukacyjna kropka pl cudzysłów przecinek. Linia 4. cudzysłów wnioskowany podkreślnik kredyt cudzysłów dwukropek 14000 przecinek. Linia 5. cudzysłów liczba podkreślnik rat podkreślnik w podkreślnik roku cudzysłów dwukropek 12 przecinek. Linia 6. cudzysłów liczba podkreślnik lat cudzysłów dwukropek 12 przecinek. Linia 7. cudzysłów zarobki podkreślnik miesieczne podkreślnik netto cudzysłów dwukropek 3738 kropka 0 przecinek. Linia 8. cudzysłów koszty podkreślnik utrzymania cudzysłów dwukropek 1534 kropka 36 przecinek. Linia 9. cudzysłów splaty podkreślnik innych podkreślnik kredytow cudzysłów dwukropek 837 kropka 84 przecinek. Linia 10. cudzysłów limit podkreślnik raty podkreślnik kredytu cudzysłów dwukropek 15 przecinek. Linia 11. cudzysłów liczba podkreślnik dzieci cudzysłów dwukropek 3. Linia 12. zamknij nawias klamrowy.

Program (funkcja), który napiszemy, ma umożliwić wczytanie danych, a następnie obliczyć: wysokość zdolności kredytowej oraz wysokość możliwej raty, a następnie zwrócić informację, czy kredyt zostanie udzielony, czy nie.

Aby podać taką informację, obliczamy stałą ratę kredytu dla założonych parametrów. Następnie sprawdzamy, czy nie przekroczy ona ustalonego progu procentowego miesięcznych zarobków.

Przyjmijmy wzór na obliczenie stałej raty kredytu:

R = K p n ( 1     ( n n + p ) n l )
  • K – wnioskowana kwota kredytu

  • p – oprocentowanie w skali roku

  • n – liczba rat w skali roku (np. n = 12 oznacza, że raty spłacane są co miesiąc)

  • l – liczba lat, na które udzielany jest kredyt.

Przejdźmy do zdefiniowania odpowiedniej funkcji. Podczas jej tworzenia zapiszemy pewne parametry z wartościami domyślnymiwartość domyślna parametru funkcjiwartościami domyślnymi, aby umożliwić szybkie wywoływanie funkcji.

Ważne!

Funkcja może mieć parametry z wartościami domyślnymi, tzn. takie, które zostaną przypisane podczas uruchomienia funkcji do zmiennej, o ile nie wystąpi jawne przypisanie innej wartości.

Linia 1. def rata podkreślnik kredytu otwórz nawias okrągły K przecinek n znak równości 12 przecinek l znak równości 1 przecinek oprocentowanie znak równości 10 zamknij nawias okrągły dwukropek. Linia 2. p znak równości oprocentowanie prawy ukośnik 100. Linia 3. return round otwórz nawias okrągły K asterysk p prawy ukośnik otwórz nawias okrągły n asterysk otwórz nawias okrągły 1 minus pow otwórz nawias okrągły n prawy ukośnik otwórz nawias okrągły n plus p zamknij nawias okrągły przecinek l asterysk n zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły przecinek 0 zamknij nawias okrągły.

Zwróć uwagę na to, że niektóre parametry funkcji mają przypisane wartości. To tzw. parametry z wartościami domyślnymi. Funkcja wykona się, jeśli w jej wywołaniu nie podamy danego parametru, który ma wartość domyślną.

Poniższe parametry mają wartości domyślne:

  • n – liczba rat w skali roku

  • l – liczba lat, na które udzielany jest kredyt

  • oprocentowanie – oprocentowanie roczne

Zwróć uwagę na kolejność parametrów – parametry, które nie mają wartości domyślnej, zawsze muszą stać przed tymi, które ją mają.

Przykładowo: dla kredytu 1500 zł zaciągniętego na 12 miesięcy przy oprocentowaniu rocznym 5% i spłacie raty co miesiąc – kwota raty wynosi 128 zł. Zatem całkowita spłata to 1536 zł.

Przykład 2

Zwróćmy uwagę na różne sposoby wywoływania funkcji, tzn. na wywołanie funkcji bez jawnego podawania wartości parametrów.

Linia 1. def rata podkreślnik kredytu otwórz nawias okrągły K przecinek n znak równości 12 przecinek l znak równości 1 przecinek oprocentowanie znak równości 10 zamknij nawias okrągły dwukropek. Linia 2. p znak równości oprocentowanie prawy ukośnik 100. Linia 3. return round otwórz nawias okrągły K asterysk p prawy ukośnik otwórz nawias okrągły n asterysk otwórz nawias okrągły 1 minus pow otwórz nawias okrągły n prawy ukośnik otwórz nawias okrągły n plus p zamknij nawias okrągły przecinek l asterysk n zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły przecinek 0 zamknij nawias okrągły. Linia 5. print otwórz nawias okrągły rata podkreślnik kredytu otwórz nawias okrągły 1500 przecinek 12 przecinek 1 przecinek 5 zamknij nawias okrągły zamknij nawias okrągły. Linia 6. kratka 128 kropka 0. Linia 8. print otwórz nawias okrągły rata podkreślnik kredytu otwórz nawias okrągły 1500 zamknij nawias okrągły zamknij nawias okrągły. Linia 9. kratka 132 kropka 0. Linia 11. print otwórz nawias okrągły rata podkreślnik kredytu otwórz nawias okrągły 2350 przecinek 12 przecinek 2 przecinek 10 zamknij nawias okrągły zamknij nawias okrągły. Linia 12. kratka 108 kropka 0. Linia 14. print otwórz nawias okrągły rata podkreślnik kredytu otwórz nawias okrągły 2350 zamknij nawias okrągły zamknij nawias okrągły. Linia 15. kratka 207 kropka 0.

Znając miesięczną kwotę raty, możemy sprawdzić, czy nie przekraczamy założonego progu udziału wysokości kredytu w zdolności kredytowej klienta, na którą składają się jego zarobki pomniejszone na przykład o koszty utrzymania. Zapiszemy teraz funkcję, która sprawdzi taki warunek. Na potrzeby programu przyjmiemy domyślny limit procentowy na poziomie 15% kwoty zarobków.

Linia 1. def czy podkreślnik rata podkreślnik mozliwa otwórz nawias okrągły zdolnosc przecinek. Linia 2. kwota podkreślnik raty przecinek limit znak równości 15 zamknij nawias okrągły dwukropek. Linia 3. wartosc znak równości zdolnosc asterysk limit prawy ukośnik 100. Linia 4. return wartosc zamknij nawias ostrokątny znak równości kwota podkreślnik raty.

Potrzebujemy jeszcze wygenerować odpowiedź dla klienta. Zdefiniujemy odpowiednią funkcję, która opierając się na podanych przez klienta danych, obliczy i zwróci wynik.

Linia 1. def odpowiedz otwórz nawias okrągły nazwisko przecinek mozliwa przecinek rata zamknij nawias okrągły dwukropek. Linia 2. odp znak równości apostrof Drogi kliencie – apostrof. Linia 3. tak znak równości apostrof udzielimy Ci wnioskowanego kredytu z ratą wysokości dwukropek apostrof plus str otwórz nawias okrągły rata zamknij nawias okrągły plus apostrof zł kropka apostrof. Linia 4. nie znak równości apostrof niestety Twoja zdolność kredytowa jest niewystarczająca kropka apostrof. Linia 5. return odp plus tak if mozliwa else odp plus nie.

Do uproszczonego wczytywania danych użyjemy funkcji wczytywanie_danych_klienta(), która zwróci obiekt typu dict.

Linia 1. def wczytywanie podkreślnik danych podkreślnik klienta otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 2. informacja znak równości otwórz nawias klamrowy zamknij nawias klamrowy. Linia 3. informacja otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy znak równości input otwórz nawias okrągły cudzysłów Szanowny kliencie proszę podaj swoje imię i nazwisko dwukropek cudzysłów zamknij nawias okrągły. Linia 4. informacja otwórz nawias kwadratowy cudzysłów email cudzysłów zamknij nawias kwadratowy znak równości input otwórz nawias okrągły cudzysłów Szanowny kliencie proszę podaj swój adres email dwukropek cudzysłów zamknij nawias okrągły. Linia 5. informacja otwórz nawias kwadratowy cudzysłów wnioskowany podkreślnik kredyt cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać kwotę wnioskowanego kredytu dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 6. informacja otwórz nawias kwadratowy cudzysłów liczba podkreślnik rat podkreślnik w podkreślnik roku cudzysłów zamknij nawias kwadratowy znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać preferowana liczbę rat do spłacenia w roku dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 7. informacja otwórz nawias kwadratowy cudzysłów liczba podkreślnik lat cudzysłów zamknij nawias kwadratowy znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać liczbę lat przecinek na które zaciągany jest kredyt dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 8. informacja otwórz nawias kwadratowy cudzysłów zarobki podkreślnik miesieczne podkreślnik netto cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać wartość miesięcznych zarobków netto dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 9. informacja otwórz nawias kwadratowy cudzysłów koszty podkreślnik utrzymania cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać wartość miesięcznych kosztów utrzymania dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 10. informacja otwórz nawias kwadratowy cudzysłów splaty podkreślnik innych podkreślnik kredytow cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać wysokość miesięcznych kwot spłaty innych kredytów dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 11. informacja otwórz nawias kwadratowy cudzysłów limit podkreślnik raty podkreślnik kredytu cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać procentowy limit raty kredytu dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 12. informacja otwórz nawias kwadratowy cudzysłów liczba podkreślnik dzieci cudzysłów zamknij nawias kwadratowy znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać liczbę dzieci dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 13. return informacja.

Aby zadanie nieco skomplikować, wprowadzimy pewne modyfikacje uzależnione od podanych danych:

  • Jeśli klient ma dzieci, to za każde dziecko zmniejszymy jego miesięczne zarobki netto o 5% – zatem w przypadku klienta z dwójką dzieci jego zarobki zostaną zmniejszone o 10%.

  • Jeśli klient spłaca inne kredyty (wartość zmiennej splaty_innych_kredytow jest większa niż 0), wówczas jego limit raty kredytu obniżymy o 5 punktów procentowych. Jeżeli nie można obniżyć limitu raty kredytu, bo limit raty miałby wartość mniejszą lub równą 0, nie udzielamy klientowi kredytu.

Linia 1. def obliczenie podkreślnik kredytu otwórz nawias okrągły dane znak równości None przecinek oprocentowanie znak równości 10 zamknij nawias okrągły dwukropek. Linia 2. if dane is None dwukropek. Linia 3. dane znak równości wczytywanie podkreślnik danych podkreślnik klienta otwórz nawias okrągły zamknij nawias okrągły. Linia 4. if dane is None dwukropek. Linia 5. print otwórz nawias okrągły cudzysłów Nie udało się wczytać danych cudzysłów zamknij nawias okrągły. Linia 6. return None. Linia 8. kredyt znak równości dane otwórz nawias kwadratowy apostrof wnioskowany podkreślnik kredyt apostrof zamknij nawias kwadratowy. Linia 9. liczba podkreślnik rat znak równości dane otwórz nawias kwadratowy apostrof liczba podkreślnik rat podkreślnik w podkreślnik roku apostrof zamknij nawias kwadratowy. Linia 10. liczba podkreślnik lat znak równości dane otwórz nawias kwadratowy apostrof liczba podkreślnik lat apostrof zamknij nawias kwadratowy. Linia 11. zarobki podkreślnik netto znak równości dane otwórz nawias kwadratowy apostrof zarobki podkreślnik miesieczne podkreślnik netto apostrof zamknij nawias kwadratowy. Linia 12. inne podkreślnik kredyty znak równości dane otwórz nawias kwadratowy apostrof splaty podkreślnik innych podkreślnik kredytow apostrof zamknij nawias kwadratowy. Linia 13. limit podkreślnik raty podkreślnik kredytu znak równości dane otwórz nawias kwadratowy apostrof limit podkreślnik raty podkreślnik kredytu apostrof zamknij nawias kwadratowy. Linia 14. liczba podkreślnik dzieci znak równości dane otwórz nawias kwadratowy apostrof liczba podkreślnik dzieci apostrof zamknij nawias kwadratowy. Linia 16. if liczba podkreślnik dzieci zamknij nawias ostrokątny 0 dwukropek. Linia 17. zarobki podkreślnik netto minus znak równości zarobki podkreślnik netto asterysk liczba podkreślnik dzieci asterysk 5 prawy ukośnik 100. Linia 19. zdolnosc znak równości zarobki podkreślnik netto minus dane otwórz nawias kwadratowy apostrof koszty podkreślnik utrzymania apostrof zamknij nawias kwadratowy minus inne podkreślnik kredyty. Linia 20. rata znak równości rata podkreślnik kredytu otwórz nawias okrągły kredyt przecinek liczba podkreślnik rat przecinek liczba podkreślnik lat przecinek oprocentowanie zamknij nawias okrągły. Linia 22. if inne podkreślnik kredyty zamknij nawias ostrokątny 0 and limit podkreślnik raty podkreślnik kredytu zamknij nawias ostrokątny 5 dwukropek. Linia 23. return odpowiedz otwórz nawias okrągły dane otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy przecinek. Linia 24. czy podkreślnik rata podkreślnik mozliwa otwórz nawias okrągły zdolnosc przecinek rata przecinek limit podkreślnik raty podkreślnik kredytu minus 5 zamknij nawias okrągły przecinek rata zamknij nawias okrągły. Linia 25. elif inne podkreślnik kredyty znak równości znak równości 0 dwukropek. Linia 26. return odpowiedz otwórz nawias okrągły dane otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy przecinek. Linia 27. czy podkreślnik rata podkreślnik mozliwa otwórz nawias okrągły zdolnosc przecinek rata przecinek limit podkreślnik raty podkreślnik kredytu zamknij nawias okrągły przecinek rata zamknij nawias okrągły. Linia 28. else dwukropek. Linia 29. return odpowiedz otwórz nawias okrągły dane otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy przecinek False przecinek rata zamknij nawias okrągły.
Przykład 3

Oto wywołanie całości programu, który opierając się na przykładowych danych, poda jako wynik wysokość raty udzielonego kredytu.

Linia 1. def wczytywanie podkreślnik danych podkreślnik klienta otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 2. informacja znak równości otwórz nawias klamrowy zamknij nawias klamrowy. Linia 3. informacja otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy znak równości input otwórz nawias okrągły cudzysłów Szanowny kliencie proszę podaj swoje imię i nazwisko dwukropek cudzysłów zamknij nawias okrągły. Linia 4. informacja otwórz nawias kwadratowy cudzysłów email cudzysłów zamknij nawias kwadratowy znak równości input otwórz nawias okrągły cudzysłów Szanowny kliencie proszę podaj swój adres email dwukropek cudzysłów zamknij nawias okrągły. Linia 5. informacja otwórz nawias kwadratowy cudzysłów wnioskowany podkreślnik kredyt cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać kwotę wnioskowanego kredytu dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 6. informacja otwórz nawias kwadratowy cudzysłów liczba podkreślnik rat podkreślnik w podkreślnik roku cudzysłów zamknij nawias kwadratowy znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać preferowana liczbę rat do spłacenia w roku dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 7. informacja otwórz nawias kwadratowy cudzysłów liczba podkreślnik lat cudzysłów zamknij nawias kwadratowy znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać liczbę lat przecinek na które zaciągany jest kredyt dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 8. informacja otwórz nawias kwadratowy cudzysłów zarobki podkreślnik miesieczne podkreślnik netto cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać wartość miesięcznych zarobków dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 9. informacja otwórz nawias kwadratowy cudzysłów koszty podkreślnik utrzymania cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać wartość miesięcznych kosztów utrzymania dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 10. informacja otwórz nawias kwadratowy cudzysłów splaty podkreślnik innych podkreślnik kredytow cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać wysokość innych kredytów dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 11. informacja otwórz nawias kwadratowy cudzysłów limit podkreślnik raty podkreślnik kredytu cudzysłów zamknij nawias kwadratowy znak równości float otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać procentowy limit raty kredytu dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 12. informacja otwórz nawias kwadratowy cudzysłów liczba podkreślnik dzieci cudzysłów zamknij nawias kwadratowy znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Proszę podać liczbę dzieci dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 13. return informacja. Linia 15. def rata podkreślnik kredytu otwórz nawias okrągły K przecinek n znak równości 12 przecinek l znak równości 1 przecinek oprocentowanie znak równości 10 zamknij nawias okrągły dwukropek. Linia 16. p znak równości oprocentowanie prawy ukośnik 100. Linia 17. return round otwórz nawias okrągły K asterysk p prawy ukośnik otwórz nawias okrągły n asterysk otwórz nawias okrągły 1 minus pow otwórz nawias okrągły n prawy ukośnik otwórz nawias okrągły n plus p zamknij nawias okrągły przecinek l asterysk n zamknij nawias okrągły zamknij nawias okrągły zamknij nawias okrągły przecinek 0 zamknij nawias okrągły. Linia 19. def czy podkreślnik rata podkreślnik mozliwa otwórz nawias okrągły zdolnosc przecinek. Linia 20. kwota podkreślnik raty przecinek limit znak równości 15 zamknij nawias okrągły dwukropek. Linia 21. wartosc znak równości zdolnosc asterysk limit prawy ukośnik 100. Linia 22. return wartosc zamknij nawias ostrokątny znak równości kwota podkreślnik raty. Linia 24. def odpowiedz otwórz nawias okrągły nazwisko przecinek mozliwa przecinek rata zamknij nawias okrągły dwukropek. Linia 25. odp znak równości apostrof Drogi kliencie apostrof plus nazwisko plus apostrof minus apostrof. Linia 26. tak znak równości apostrof udzielimy ci wnioskowanego kredytu z ratą wysokości dwukropek apostrof plus str otwórz nawias okrągły rata zamknij nawias okrągły plus apostrof zł kropka apostrof. Linia 27. nie znak równości apostrof niestety Twoja zdolność kredytowa jest niewystarczająca kropka apostrof. Linia 28. return odp plus tak if mozliwa else odp plus nie. Linia 30. def obliczenie podkreślnik kredytu otwórz nawias okrągły dane znak równości None przecinek oprocentowanie znak równości 10 zamknij nawias okrągły dwukropek. Linia 31. if dane is None dwukropek. Linia 32. dane znak równości wczytywanie podkreślnik danych podkreślnik klienta otwórz nawias okrągły zamknij nawias okrągły. Linia 33. if dane is None dwukropek. Linia 34. print otwórz nawias okrągły cudzysłów Nie udało się wczytać danych cudzysłów zamknij nawias okrągły. Linia 35. return None. Linia 37. kredyt znak równości dane otwórz nawias kwadratowy apostrof wnioskowany podkreślnik kredyt apostrof zamknij nawias kwadratowy. Linia 38. liczba podkreślnik rat znak równości dane otwórz nawias kwadratowy apostrof liczba podkreślnik rat podkreślnik w podkreślnik roku apostrof zamknij nawias kwadratowy. Linia 39. liczba podkreślnik lat znak równości dane otwórz nawias kwadratowy apostrof liczba podkreślnik lat apostrof zamknij nawias kwadratowy. Linia 40. zarobki podkreślnik netto znak równości dane otwórz nawias kwadratowy apostrof zarobki podkreślnik miesieczne podkreślnik netto apostrof zamknij nawias kwadratowy. Linia 41. inne podkreślnik kredyty znak równości dane otwórz nawias kwadratowy apostrof splaty podkreślnik innych podkreślnik kredytow apostrof zamknij nawias kwadratowy. Linia 42. limit podkreślnik raty podkreślnik kredytu znak równości dane otwórz nawias kwadratowy apostrof limit podkreślnik raty podkreślnik kredytu apostrof zamknij nawias kwadratowy. Linia 43. liczba podkreślnik dzieci znak równości dane otwórz nawias kwadratowy apostrof liczba podkreślnik dzieci apostrof zamknij nawias kwadratowy. Linia 45. if liczba podkreślnik dzieci zamknij nawias ostrokątny 0 dwukropek. Linia 46. zarobki podkreślnik netto minus znak równości zarobki podkreślnik netto asterysk liczba podkreślnik dzieci asterysk 5 prawy ukośnik 100. Linia 48. zdolnosc znak równości zarobki podkreślnik netto minus dane otwórz nawias kwadratowy apostrof koszty podkreślnik utrzymania apostrof zamknij nawias kwadratowy minus inne podkreślnik kredyty. Linia 49. rata znak równości rata podkreślnik kredytu otwórz nawias okrągły kredyt przecinek liczba podkreślnik rat przecinek liczba podkreślnik lat przecinek oprocentowanie zamknij nawias okrągły. Linia 51. if inne podkreślnik kredyty zamknij nawias ostrokątny 0 and limit podkreślnik raty podkreślnik kredytu zamknij nawias ostrokątny 5 dwukropek. Linia 52. return odpowiedz otwórz nawias okrągły dane otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy przecinek. Linia 53. czy podkreślnik rata podkreślnik mozliwa otwórz nawias okrągły zdolnosc przecinek rata przecinek limit podkreślnik raty podkreślnik kredytu minus 5 zamknij nawias okrągły przecinek rata zamknij nawias okrągły. Linia 54. elif inne podkreślnik kredyty znak równości znak równości 0 dwukropek. Linia 55. return odpowiedz otwórz nawias okrągły dane otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy przecinek. Linia 56. czy podkreślnik rata podkreślnik mozliwa otwórz nawias okrągły zdolnosc przecinek rata przecinek limit podkreślnik raty podkreślnik kredytu zamknij nawias okrągły przecinek rata zamknij nawias okrągły. Linia 57. else dwukropek. Linia 58. return odpowiedz otwórz nawias okrągły dane otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy przecinek False przecinek rata zamknij nawias okrągły. Linia 60. kratka przykładowe dane wejściowe. Linia 61. kratka dane znak równości otwórz nawias klamrowy. Linia 62. kratka apostrof imie podkreślnik nazwisko apostrof dwukropek apostrof Adam Jurkiewicz apostrof przecinek. Linia 63. kratka apostrof email apostrof dwukropek apostrof adam kropka jurkiewicz at brak kropka domeny kropka pl apostrof przecinek. Linia 64. kratka apostrof wnioskowany podkreślnik kredyt apostrof dwukropek 2600 przecinek. Linia 65. kratka apostrof liczba podkreślnik rat podkreślnik w podkreślnik roku apostrof dwukropek 12 przecinek. Linia 66. kratka apostrof liczba podkreślnik lat apostrof dwukropek 1 przecinek. Linia 67. kratka apostrof zarobki podkreślnik miesieczne podkreślnik netto apostrof dwukropek 5000 przecinek. Linia 68. kratka apostrof koszty podkreślnik utrzymania apostrof dwukropek 700 przecinek. Linia 69. kratka apostrof splaty podkreślnik innych podkreślnik kredytow apostrof dwukropek 300 przecinek. Linia 70. kratka apostrof limit podkreślnik raty podkreślnik kredytu apostrof dwukropek 20 przecinek. Linia 71. kratka apostrof liczba podkreślnik dzieci apostrof dwukropek 1 przecinek. Linia 72. kratka zamknij nawias klamrowy. Linia 74. dane znak równości wczytywanie podkreślnik danych podkreślnik klienta otwórz nawias okrągły zamknij nawias okrągły. Linia 76. print otwórz nawias okrągły obliczenie podkreślnik kredytu otwórz nawias okrągły dane przecinek 20 zamknij nawias okrągły zamknij nawias okrągły. Linia 77. kratka wyniki działania funkcji podano dla podanych powyżej przykładowych danych. Linia 78. kratka Drogi kliencie – udzielimy Ci wnioskowanego kredytu z ratą wysokości dwukropek 241 kropka 0 zł kropka. Linia 80. kratka print otwórz nawias okrągły obliczenie podkreślnik kredytu otwórz nawias okrągły dane zamknij nawias okrągły zamknij nawias okrągły. Linia 81. kratka Drogi kliencie – udzielimy ci wnioskowanego kredytu z ratą wysokości dwukropek 229 kropka 0 zł kropka.
1
Przykład 4

Przebudujmy funkcje programu Elektroniczny Dziennik Klasowy, który tworzyliśmy w e‑materiale Wprowadzenie do struktur w języku PythonP1DPei89RWprowadzenie do struktur w języku Python, w taki sposób, aby wykorzystać w nich wartości domyślne. Możemy zdefiniować domyślne przedmioty, które zostaną utworzone dla danej osoby w dzienniku.

Oto program, w którym zdefiniowano nazwy przedmiotów. Dodatkowo, użytkownik w momencie wprowadzania danych widzi, jakie przedmioty może wpisać.

Wewnątrz programu stosujemy różne struktury. Lista PRZEDMIOTY przechowuje domyślne przedmioty, jej elementy są napisami. Kolejna lista o nazwie KLASA zawiera dane o uczniach w klasie. Jest to lista, której elementami są struktury typu dict. W funkcji dodaj_ocene_osobie() mamy strukturę dane_osobowe typu dict zawierającą informację o uczniu, który jest zapisywany jako element listy KLASA.

Linia 1. def elektroniczny podkreślnik dziennik podkreślnik klasowy otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 2. kratka ważne stałe. Linia 3. NR podkreślnik KLASY znak równości cudzysłów 4E cudzysłów. Linia 4. ILU podkreślnik UCZNIOW znak równości 31. Linia 6. kratka domyślne przedmioty. Linia 7. PRZEDMIOTY znak równości otwórz nawias kwadratowy cudzysłów matematyka cudzysłów przecinek cudzysłów język polski cudzysłów przecinek cudzysłów informatyka cudzysłów przecinek cudzysłów fizyka cudzysłów zamknij nawias kwadratowy. Linia 9. kratka definicja głównej zmiennej. Linia 10. KLASA znak równości otwórz nawias kwadratowy None for x in range otwórz nawias okrągły ILU podkreślnik UCZNIOW plus 1 zamknij nawias okrągły zamknij nawias kwadratowy. Linia 12. def menu podkreślnik programu otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 13. cudzysłów cudzysłów cudzysłów menu główne cudzysłów cudzysłów cudzysłów. Linia 15. menu znak równości cudzysłów minus minus minus minus minus minus minus minus minus minus minus minus minus lewy ukośnik nMENU GŁOWNE dwukropek lewy ukośnik n1 minus Dodaj ocenę osobie lewy ukośnik n2 minus Pokaż oceny osoby lewy ukośnik n3 minus KONIEC cudzysłów. Linia 17. print otwórz nawias okrągły menu zamknij nawias okrągły. Linia 18. opcja znak równości input otwórz nawias okrągły cudzysłów Wybierz opcję dwukropek cudzysłów zamknij nawias okrągły. Linia 19. if not opcja kropka isdigit otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 20. print otwórz nawias okrągły f cudzysłów Podana opcja otwórz nawias klamrowy opcja zamknij nawias klamrowy nie jest liczbą wykrzyknik cudzysłów zamknij nawias okrągły. Linia 21. return 0. Linia 22. kratka zwraca wybraną opcję. Linia 23. return int otwórz nawias okrągły opcja zamknij nawias okrągły. Linia 25. def dodaj podkreślnik ocene podkreślnik osobie otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 26. cudzysłów cudzysłów cudzysłów Dodaje ocenę z przedmiotu przecinek. Linia 27. aktualizuje dane o osobie w przypadku braku cudzysłów cudzysłów cudzysłów. Linia 29. nrt znak równości input otwórz nawias okrągły cudzysłów Podaj nr w dzienniku dwukropek cudzysłów zamknij nawias okrągły. Linia 30. if not nrt kropka isdigit otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 31. print otwórz nawias okrągły f cudzysłów Podany nr otwórz nawias klamrowy nrt zamknij nawias klamrowy nie jest liczbą wykrzyknik cudzysłów zamknij nawias okrągły. Linia 32. return None. Linia 34. kratka zamieniamy na liczbę. Linia 35. nr znak równości int otwórz nawias okrągły nrt zamknij nawias okrągły. Linia 37. if nr zamknij nawias ostrokątny ILU podkreślnik UCZNIOW dwukropek. Linia 38. print otwórz nawias okrągły f cudzysłów Podany nr otwórz nawias klamrowy nr zamknij nawias klamrowy jest większy niż liczba osób w klasie minus otwórz nawias klamrowy ILU podkreślnik UCZNIOW zamknij nawias klamrowy wykrzyknik cudzysłów zamknij nawias okrągły. Linia 39. return None. Linia 41. dane podkreślnik osoby znak równości KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy. Linia 42. print otwórz nawias okrągły f cudzysłów Wprowadź dane dla osoby o nr otwórz nawias klamrowy nr zamknij nawias klamrowy dwukropek cudzysłów zamknij nawias okrągły. Linia 44. kratka na początku brak danych o osobie. Linia 45. if dane podkreślnik osoby is None dwukropek. Linia 46. kratka inicjujemy pusty obiekt dict. Linia 47. dane podkreślnik osoby znak równości otwórz nawias klamrowy zamknij nawias klamrowy. Linia 48. imie podkreślnik nazwisko znak równości input otwórz nawias okrągły cudzysłów Podaj imię i nazwisko dwukropek cudzysłów zamknij nawias okrągły. Linia 49. adres podkreślnik email znak równości input otwórz nawias okrągły cudzysłów Podaj adres email dwukropek cudzysłów zamknij nawias okrągły. Linia 50. dane podkreślnik osoby otwórz nawias kwadratowy cudzysłów imie podkreślnik nazwisko cudzysłów zamknij nawias kwadratowy znak równości imie podkreślnik nazwisko. Linia 51. dane podkreślnik osoby otwórz nawias kwadratowy cudzysłów email cudzysłów zamknij nawias kwadratowy znak równości adres podkreślnik email. Linia 52. kratka inicjujemy wszystkie przedmioty. Linia 53. for przedmiot in PRZEDMIOTY dwukropek. Linia 54. dane podkreślnik osoby otwórz nawias kwadratowy przedmiot zamknij nawias kwadratowy znak równości otwórz nawias kwadratowy zamknij nawias kwadratowy. Linia 56. kratka niezależnie od danych osobowych. Linia 57. kratka pobieramy dane o przedmiocie i ocenie. Linia 58. print otwórz nawias okrągły f cudzysłów Dozwolone przedmioty to dwukropek otwórz nawias klamrowy PRZEDMIOTY zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły. Linia 59. przedmiot znak równości input otwórz nawias okrągły cudzysłów Podaj nazwę przedmiotu dwukropek cudzysłów zamknij nawias okrągły. Linia 61. kratka sprawdzamy przecinek czy dana osoba ma w ogóle taki przedmiot. Linia 62. if przedmiot not in PRZEDMIOTY dwukropek. Linia 63. kratka nie przecinek wówczas odmawiamy dopisania. Linia 64. print otwórz nawias okrągły f cudzysłów Brak przedmiotu otwórz nawias klamrowy przedmiot zamknij nawias klamrowy dla osoby nr otwórz nawias klamrowy nr zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły. Linia 65. return None. Linia 67. kratka w tym momencie na pewno mamy listę ocen. Linia 68. kratka możemy dodać ocenę. Linia 69. ocena znak równości int otwórz nawias okrągły input otwórz nawias okrągły cudzysłów Podaj ocenę otwórz nawias okrągły jako cyfrę 1 minus 6 zamknij nawias okrągły dwukropek cudzysłów zamknij nawias okrągły zamknij nawias okrągły. Linia 70. dane podkreślnik osoby otwórz nawias kwadratowy przedmiot zamknij nawias kwadratowy kropka append otwórz nawias okrągły ocena zamknij nawias okrągły. Linia 72. kratka zapisujemy dane osoby w dzienniku klasowym. Linia 73. kratka oraz wypisujemy stosowny komunikat. Linia 74. KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy znak równości dane podkreślnik osoby. Linia 75. print otwórz nawias okrągły cudzysłów Dane zostały zapisane cudzysłów zamknij nawias okrągły. Linia 76. return None. Linia 78. def wypisz podkreślnik oceny otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 79. nrt znak równości input otwórz nawias okrągły cudzysłów Podaj nr w dzienniku dwukropek cudzysłów zamknij nawias okrągły. Linia 80. if not nrt kropka isdigit otwórz nawias okrągły zamknij nawias okrągły dwukropek. Linia 81. print otwórz nawias okrągły f cudzysłów Podany nr otwórz nawias klamrowy nrt zamknij nawias klamrowy nie jest liczbą wykrzyknik cudzysłów zamknij nawias okrągły. Linia 82. return None. Linia 84. kratka zamieniamy na liczbę. Linia 85. nr znak równości int otwórz nawias okrągły nrt zamknij nawias okrągły. Linia 87. if nr zamknij nawias ostrokątny ILU podkreślnik UCZNIOW dwukropek. Linia 88. print otwórz nawias okrągły f cudzysłów Podany nr otwórz nawias klamrowy nr zamknij nawias klamrowy jest większy niż liczba osób w klasie minus otwórz nawias klamrowy ILU podkreślnik UCZNIOW zamknij nawias klamrowy wykrzyknik cudzysłów zamknij nawias okrągły. Linia 89. return None. Linia 91. dane podkreślnik osoby znak równości KLASA otwórz nawias kwadratowy nr zamknij nawias kwadratowy. Linia 93. kratka gdy brak danych przecinek przerywamy. Linia 94. if dane podkreślnik osoby is None dwukropek. Linia 95. print otwórz nawias okrągły f cudzysłów Brak danych dla osoby o nr otwórz nawias klamrowy nr zamknij nawias klamrowy dwukropek cudzysłów zamknij nawias okrągły. Linia 96. return None. Linia 98. kratka pobieramy dane o przedmiocie. Linia 99. przedmiot znak równości input otwórz nawias okrągły cudzysłów Podaj nazwę przedmiotu dwukropek cudzysłów zamknij nawias okrągły. Linia 101. kratka sprawdzamy przecinek czy dana osoba ma oceny z danego przedmiotu. Linia 102. if przedmiot not in dane podkreślnik osoby dwukropek. Linia 103. kratka jeśli dana osoba nie ma ocen z podanego przedmiotu przecinek wypiszemy komunikat. Linia 104. print otwórz nawias okrągły f cudzysłów Dla osoby nr otwórz nawias klamrowy nr zamknij nawias klamrowy brak ocen z przedmiotu otwórz nawias klamrowy przedmiot zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły. Linia 105. else dwukropek. Linia 106. oceny znak równości dane podkreślnik osoby otwórz nawias kwadratowy przedmiot zamknij nawias kwadratowy. Linia 107. print otwórz nawias okrągły f cudzysłów Z przedmiotu otwórz nawias klamrowy przedmiot zamknij nawias klamrowy osoba nr otwórz nawias klamrowy nr zamknij nawias klamrowy otrzymała oceny dwukropek otwórz nawias klamrowy oceny zamknij nawias klamrowy kropka cudzysłów zamknij nawias okrągły. Linia 109. return None. Linia 111. kratka uruchomienie elektronicznego dziennika. Linia 112. wybrana podkreślnik opcja znak równości 0. Linia 113. while wybrana podkreślnik opcja wykrzyknik znak równości 3 dwukropek. Linia 114. wybrana podkreślnik opcja znak równości menu podkreślnik programu otwórz nawias okrągły zamknij nawias okrągły. Linia 115. if wybrana podkreślnik opcja znak równości znak równości 1 dwukropek. Linia 116. dodaj podkreślnik ocene podkreślnik osobie otwórz nawias okrągły zamknij nawias okrągły. Linia 117. if wybrana podkreślnik opcja znak równości znak równości 2 dwukropek. Linia 118. wypisz podkreślnik oceny otwórz nawias okrągły zamknij nawias okrągły. Linia 119. else dwukropek. Linia 120. kratka wybrano 3 przecinek koniec pętli. Linia 121. print otwórz nawias okrągły cudzysłów Koniec programu kropka cudzysłów zamknij nawias okrągły. Linia 123. kratka kod główny programu. Linia 124. elektroniczny podkreślnik dziennik podkreślnik klasowy otwórz nawias okrągły zamknij nawias okrągły.
Już wiesz
  • Funkcje mogą mieć parametry.

  • Parametr funkcji może mieć wartość domyślną.

Słownik

wartość domyślna parametru funkcji
wartość domyślna parametru funkcji

w języku Python parametr funkcji może przyjąć wartość domyślną, która w definicji funkcji zapisywana jest po znaku równości, np.: def funkcja(parametr = 10); wówczas można wywołać taką funkcję, nie podając tego argumentu – zostanie mu wtedy przypisana wartość domyślna