Commit 8100966e by Patryk Czarnik

teoria return

parent 553258aa
def ile_sekund_do_konca_minuty():
from datetime import datetime
return 60 - datetime.now().second
# Przykład typowej funkcji matematycznej: argument i wynik są liczbami
# Dla podanej liczby x wynikiem jest x do kwadratu
def kwadrat(x):
return x*x
# Wewnątrz funkcji return nie musi być ostatnią instrukcją i może występować w kilku miejscach.
# Wtedy, gdy funkcja dojdzie do linii, w której jest return, zwraca podany wynik i natychmiast się kończy.
def stawka_za_prace(stawka_podstawowa, dzien_tygodnia):
if 1 <= dzien_tygodnia <= 5:
return stawka_podstawowa
if dzien_tygodnia == 6:
return 1.5 * stawka_podstawowa
if dzien_tygodnia == 7:
return 2 * stawka_podstawowa
# W Pythonie bardzo łatwo pisze się funkcje, które 'na intuicję' zwracają kilka wartości na raz
# Technicznie zwracana jest krotka (tuple)
def dzielenie_z_reszta(x, y):
return x // y, x % y
print('Funkcje zdefiniowane, początek właściwego programu')
print('Uruchomię teraz funkcję ile_sekund_do_konca_minuty po raz pierwszy:')
# Jeśli tylko wywołamy fukcję, która zwraca wynik, ale niczego z tym wynikiem nie zrobimy,
# to ten wynik nigdzie się nie wypisze.
# RETURN TO NIE TO SAMO CO PRINT!
ile_sekund_do_konca_minuty()
print('Uruchomię teraz zapisując wynik do zmiennej.')
ile_sekund = ile_sekund_do_konca_minuty()
print('Wynikowa zmienna ma wartość:', ile_sekund)
print(f'Teraz wypiszę wynik bezpośrednio tutaj: {ile_sekund_do_konca_minuty()}')
print("\n================\n")
wynik = kwadrat(5)
print('Wynikiem operacji 5² jest', wynik)
print('6² =', kwadrat(6))
# Ale samomo wywołanie funkcji, bez przejęcia wyniku, nie wypisze go ekran.
kwadrat(7)
print(f'{wynik}² = {kwadrat(wynik)}')
print("\n================\n")
print('środa:', stawka_za_prace(100, 3))
print('sobota:', stawka_za_prace(100, 6))
print('niedziela:', stawka_za_prace(100, 7))
# Jeśli podczas wykonania funcji nie zostanie wykonany żaden return,
# to w Pythonie przyjmuje się, że funkcja zwraca wynik None
print('poza zakresem:', stawka_za_prace(100, 8))
print("\n================\n")
tupla = dzielenie_z_reszta(13, 5)
print(tupla, 'typu', type(tupla))
print('iloraz:', tupla[0], 'reszta:', tupla[1])
# "upacking":
a, b = dzielenie_z_reszta(77, 5)
print('iloraz:', a, 'reszta:', b)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment