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