diff options
| author | vlapa <vlapa@ya.ru> | 2026-06-13 20:33:26 +0300 |
|---|---|---|
| committer | vlapa <vlapa@ya.ru> | 2026-06-13 20:33:26 +0300 |
| commit | e5abc1fe99340b979b18864d978179f71fe8f5c5 (patch) | |
| tree | 98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /PYTHON/ФУНКЦИИ.md | |
First
Diffstat (limited to 'PYTHON/ФУНКЦИИ.md')
| -rw-r--r-- | PYTHON/ФУНКЦИИ.md | 192 |
1 files changed, 192 insertions, 0 deletions
diff --git a/PYTHON/ФУНКЦИИ.md b/PYTHON/ФУНКЦИИ.md new file mode 100644 index 0000000..73d132c --- /dev/null +++ b/PYTHON/ФУНКЦИИ.md @@ -0,0 +1,192 @@ +```python +def foo() -> int : + return x ** 2 + + +x = foo( 2 ) +print(x) # 5 + + +def foo( x : str, y : int ) -> str : + ........... + + +name = input('Ведите имя:') # - всегда строка! +print(dir(name)) # - вывод атрибутов + +# ['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'capitalize', 'casefold', 'center', 'count', 'encode', 'endswith', 'expandtabs', 'find', 'format', 'format_map', 'index', 'isalnum', 'isalpha', 'isascii', 'isdecimal', 'isdigit', 'isidentifier', 'islower', 'isnumeric', 'isprintable', 'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'maketrans', 'partition', 'removeprefix', 'removesuffix', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit', 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title', 'translate', 'upper', 'zfill'] +# +``` + +```python +# собираем все параметры в кортеж: + +def sum_nums(*args): + print(args) + print(type(args)) + print(args[0]) + return sum(args) + + +print(sum_nums(2, 3, 7)) +``` + +```python +# аргументы с ключевыми словами - порядок не важен: + +def get_post_info(name, post_qty): + info = f"{name} wrote {post_qty} posts" + return info + + +info = get_post_info(name='Vlapa', post_qty=50) +print(info) +``` + +```python +# объединение аргументов в DICT (только именованные): + +def get_post_info(**person): + print(person) + print(type(person)) + info = ( + f"{person['name']} wrote " + f"{person['post_qty']} posts" + ) + return info + +info = get_post_info(name='Vlapa', post_qty=50) +print(info) +``` + +```python +# значение по умолчанию: + +def mult_by(value, multiplier=1): + return value * multiplier + +print(mult_by(10, 2)) +print(mult_by(5)) + +``` + +```python +# + +from datetime import date + + +def get_weekday(): + return date.today().strftime('%A') + + +def create_new_post(post, weekday=get_weekday()): + post_copy = post.copy() + post_copy['created_on_weekday'] = weekday + return post_copy + + +initial_post = { + 'id': 234, + 'author': 'Vlapa', +} + +post_with_weekday = create_new_post(initial_post) +``` + +```python +# callback function + +def print_number_info(num): + """ + Print num information + Args: + num (int): Integer number + """ + if (num % 2) == 0: + print("Число четное") +else: + print("Число НЕ четное") + + +def print_square_num(num): + print("Square of the num is", num * num) + + +def process_number(num, callback_fn): + callback_fn(num) + + +entered_num = int(input("Введите любое целое число: ")) + +process_number(entered_num, print_number_info) +process_number(entered_num, print_square_num) +``` + +```python +print(dir()) # все переменные области +``` + +```python +def greeting(greet): + return lambda name: f"{greet}, {name}!" + + # def info(name): + # return f"{greet}, {name}!" + # return info + +morning_greeting = greeting("Good Morning") + +print(morning_greeting('Vlapa')) + +evening_greeting = greeting("Good Evening") + +print(evening_greeting('Vlapa')) +``` +====================================================== +### Голобурдин: + +```python +def chain_sum0(number): + result = number + def wrapper(number2=None): + nonlocal result + if number2 is None: + return result + result += number2 + return wrapper + return wrapper + + +def chain_sum00(number): + result = number + def wrapper(number2=None): + nonlocal result + try: + number2 = int(number2) + except TypeError: + return result + result += number2 + return wrapper + return wrapper + + +def chain_sum(number): + def wrapper(number2=None): + def inner(): + wrapper.result += number2 + return wrapper + logic = { + type(None): lambda: wrapper.result, + int: inner + } + return logic[type(number2)]() + wrapper.result = number + return wrapper + + +print(chain_sum(5)()) +print(chain_sum(5)(2)()) +print(chain_sum(5)(100)(-10)()) +``` + |
