Page 26 - 6734
P. 26

Функції з довільною кількістю аргументів
               Наступна функція має один обов’язковий аргумент a, довільну
           кількість  неіменованих  аргументів  *b,  і  довільну  кількість
           іменованих аргументів **c.
           def f(a,*b,**c):
               print a,b,c # тут b - кортеж, c - словник
           f(1,2,3,x=4,y=5) # a=1 b=(2, 3) c={'y': 5, 'x': 4}
           f(a=1,b=2,c=3,x=4,y=5) # a=1 b=() c={'y': 5, 'x': 4,
           'c': 3, 'b': 2}

           1 (2, 3) {'y': 5, 'x': 4}
           1 () {'y': 5, 'x': 4, 'c': 3, 'b': 2}

                                   lambda-функції
               Невеликі  анонімні  функції  у  вигляді  одного  виразу  можуть
           бути описані за допомогою ключового слова lambda [16, 19].

           f = lambda x, y: x + y # визначення функції за
           допомогою виразу
           print f(2,3) # вивести значення функції (x=2,y=3)

           5
                                 Рекурсивні функції

               Рекурсивна функція викликає саму себе [23]. Наприклад у коді
           функції  bin(n)  є  виклик  bin(n).  Існує  обмеження  на  глибину
           рекурсії.

           def bin(n): # рекурсивна функція
               "Повертає список із двійковим поданням числа"
               if n == 0: return [] # якщо n == 0, повертає
           пустий список
               n, d = divmod(n, 2) #або n=n//2; d=n%2
               return bin(n) + [d] # повертає bin(n) + [d]

                                          25
   21   22   23   24   25   26   27   28   29   30   31