# -*- coding: utf-8 -*- """ Created on Tue Oct 4 18:59:41 2022 @author: Roman """ #процедура def fun1(n): for i in range(n): print(i ** 2) fun1(10) #функция def fun2(a, b): return a * b d = {'a': 2, 'b': 5} print(fun2(**d)) #именованные явные def fun3(a, b, с=1): return a * b * с print( fun3( a=2, b=5 ) ) #порядковые неявные def fun4(a, b, *c): result = a * b for i in c: result *= i return result print(fun4(1, 2, 3, 4)) #именованные неявные def fun5(**c): for key in c: print(key, c[key]) fun5(a=1, b=2) def fun6(n, s): for i in n: print(i) for i in s: print(i) print(fun6( n=[1, 2, 3], s=["1","2","3"] )) #анонимные функции f = lambda a, b: a + b print(f(4, 5)) def fun7(a, b, f = lambda x: x): return f(a) + f(b) print(fun7(2, 6, lambda x: x ** 2)) print(fun7(2, 6)) print(fun7(2, 6, lambda x: x ** 0.5)) #генераторы def generator1(n): for i in range(2, n + 1): p = True for j in range(2, i // 2 + 1): if not i % j: p = False break if p: yield i for i in generator1(100): print(i) g = generator1(100) print(next(g)) print(next(g)) #преобазование к списку l = [g for g in generator1(100)] print(l) l = list(generator1(100)) print(l) def my_decorathor(func): def decorator_func(n): print(25 * "+") func(n) print(25 * "+") return decorator_func @my_decorathor def print_func(n): print(n * 'Hello ') print_func(10) def func(x): return x ** 2 y = [] x = [] for xi in range(-10, 11, 1): x.append(xi) y.append(func(xi)) print(x, y)