summaryrefslogtreecommitdiff
path: root/PYTHON/ФУНКЦИИ.md
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
committervlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
commite5abc1fe99340b979b18864d978179f71fe8f5c5 (patch)
tree98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /PYTHON/ФУНКЦИИ.md
First
Diffstat (limited to 'PYTHON/ФУНКЦИИ.md')
-rw-r--r--PYTHON/ФУНКЦИИ.md192
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)())
+```
+