{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"provenance":[],"authorship_tag":"ABX9TyNJLP5gNMl3DnB/1N6b5PEs"},"kernelspec":{"name":"python3","display_name":"Python 3"},"language_info":{"name":"python"}},"cells":[{"cell_type":"markdown","source":["Функции"],"metadata":{"id":"0hGe9rwU-Iyh"}},{"cell_type":"code","execution_count":1,"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"jtsJvtz4-GYL","executionInfo":{"status":"ok","timestamp":1674835523480,"user_tz":-180,"elapsed":7,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"8b89c15f-b271-490c-b780-1a06e70773ef"},"outputs":[{"output_type":"stream","name":"stdout","text":["0\n","1\n","4\n","9\n","16\n","25\n","36\n","49\n","64\n","81\n"]}],"source":["#процедура\n","def func1(n):\n"," for i in range (n):\n"," print(i ** 2)\n","fun1(10)"]},{"cell_type":"code","source":["# функция\n","def func2(a, b):\n"," return a * b\n","\n","a = 4\n","b = 5\n","print(fun2(a,b))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"9AcpHuPj-kL_","executionInfo":{"status":"ok","timestamp":1674835741908,"user_tz":-180,"elapsed":6,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"1fbbfc1f-7157-4e9f-bc02-afab599d36a5"},"execution_count":3,"outputs":[{"output_type":"stream","name":"stdout","text":["20\n"]}]},{"cell_type":"code","source":["def func3():\n"," pass\n"," # return None\n","b = func3()\n","print(b)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"WBjtgEb-_e9H","executionInfo":{"status":"ok","timestamp":1674835851719,"user_tz":-180,"elapsed":7,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"2dc696c6-e16c-4008-a144-925273048cd1"},"execution_count":5,"outputs":[{"output_type":"stream","name":"stdout","text":["None\n"]}]},{"cell_type":"code","source":["def func4(d):\n"," if d > 6:\n"," return 1\n"," else:\n"," return 2\n","c = func4(5)\n","print(c)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"u-66ENAE_3ps","executionInfo":{"status":"ok","timestamp":1674835992380,"user_tz":-180,"elapsed":15,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"98f5904e-f234-4596-a1f2-d4605168b541"},"execution_count":8,"outputs":[{"output_type":"stream","name":"stdout","text":["2\n"]}]},{"cell_type":"code","source":["#порядковые явные\n","def func5(a, b):\n"," print(b)\n"," return a + b\n","\n","c = func5(4, 5)\n","print(c)\n","print(func5(a=3,b=7))\n","print(func5(b=7, a=3))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ggAKVxZaAivf","executionInfo":{"status":"ok","timestamp":1674836203693,"user_tz":-180,"elapsed":19,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"2c10578a-01f2-42c0-aec6-03910308b04c"},"execution_count":13,"outputs":[{"output_type":"stream","name":"stdout","text":["5\n","9\n","7\n","10\n","7\n","10\n"]}]},{"cell_type":"code","source":["#именованные явные\n","def func6(a, b, c=1):\n"," return a * b * c\n","\n","print(func6(a=6, b=7))\n","print(func6(a=6, b=7, c=-1))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ormJTLRrBJGz","executionInfo":{"status":"ok","timestamp":1674836348524,"user_tz":-180,"elapsed":389,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"c95afa64-d7fb-442d-e1fc-2dbd06486042"},"execution_count":15,"outputs":[{"output_type":"stream","name":"stdout","text":["42\n","-42\n"]}]},{"cell_type":"code","source":["#порядковые неявные\n","def func7(a, b, *c):\n"," result = a + b\n"," for i in c:\n"," result *=i\n"," return result\n","\n","print(func7(1, 2, 3, 4))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"r2pgpPlBCN0k","executionInfo":{"status":"ok","timestamp":1674836669700,"user_tz":-180,"elapsed":562,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"2c16486b-eef1-4ad6-9dc7-4a913bcc3a8e"},"execution_count":17,"outputs":[{"output_type":"stream","name":"stdout","text":["36\n"]}]},{"cell_type":"code","source":["#именнованные неявные\n","def func8(**c):\n"," for key in c:\n"," print(key, c[key])\n","func8(a=1,b=2)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"44k9iWzMCRHb","executionInfo":{"status":"ok","timestamp":1674836758300,"user_tz":-180,"elapsed":379,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"c2047d4f-fdcb-40df-e117-30450c0c755e"},"execution_count":20,"outputs":[{"output_type":"stream","name":"stdout","text":["a 1\n","b 2\n"]}]},{"cell_type":"code","source":["def func9(n, s):\n"," for i in n:\n"," print(i)\n"," for i in s:\n"," print(i * 5)\n","\n","print(func9(\n"," n = [1, 2, 3],\n"," s = [\"4\", \"5\", \"6\"]\n","))\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"wi-nI1vWDTUc","executionInfo":{"status":"ok","timestamp":1674836926389,"user_tz":-180,"elapsed":392,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"ebc3259a-92bb-41e1-9edd-aa370794b3c3"},"execution_count":21,"outputs":[{"output_type":"stream","name":"stdout","text":["1\n","2\n","3\n","44444\n","55555\n","66666\n","None\n"]}]},{"cell_type":"code","source":["def func10(a, b):\n"," return a + b\n","\n","d = {'a': 2, 'b': 8}\n","print(func10(**d))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"1tPeq4USEBOj","executionInfo":{"status":"ok","timestamp":1674837037315,"user_tz":-180,"elapsed":387,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"0b385c0c-9e07-4087-c3ee-a98130aaf584"},"execution_count":22,"outputs":[{"output_type":"stream","name":"stdout","text":["10\n"]}]},{"cell_type":"markdown","source":["lambda функции"],"metadata":{"id":"MiLdkYmSEpzE"}},{"cell_type":"code","source":["f = lambda a, b: a + b\n","\n","print(f(4, 5))\n","print()\n","\n","def func11(a, b, f = lambda x : x):\n"," # print(a, b)\n"," # print(f(a))\n"," # print(f(b))\n"," return f(a)+f(b)\n","\n","print(func11(2, 6, lambda x : x**2))\n","print(func11(2, 6))\n","print(func11(9, 4, lambda x : x**0.5))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Q-0QII6rEpdU","executionInfo":{"status":"ok","timestamp":1674837444139,"user_tz":-180,"elapsed":446,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"362886bd-e237-42a6-c1a5-7c5408e2f69f"},"execution_count":29,"outputs":[{"output_type":"stream","name":"stdout","text":["9\n","\n","40\n","8\n","5.0\n"]}]},{"cell_type":"markdown","source":["Генератор"],"metadata":{"id":"QTdH7BrnGTLY"}},{"cell_type":"code","source":["def generation1(n):\n"," for i in range(2, n+1):\n"," p = True\n"," for j in range(2, i//2+1):\n"," if not i % j:\n"," p = False\n"," break\n"," if p:\n"," yield i\n","\n","for i in generation1(100):\n"," print(i)\n","print()\n","\n","g = generation1(100)\n","print(next(g))\n","print(next(g))\n","print(next(g))\n","\n","list1 = [g for g in generation1(100)]\n","print(list1)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"8WMkTBZeGScx","executionInfo":{"status":"ok","timestamp":1674838017908,"user_tz":-180,"elapsed":561,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"a47f4e39-8e54-46dd-81d6-77cd40e378c8"},"execution_count":34,"outputs":[{"output_type":"stream","name":"stdout","text":["2\n","3\n","5\n","7\n","11\n","13\n","17\n","19\n","23\n","29\n","31\n","37\n","41\n","43\n","47\n","53\n","59\n","61\n","67\n","71\n","73\n","79\n","83\n","89\n","97\n","\n","2\n","3\n","5\n","[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]\n"]}]},{"cell_type":"markdown","source":["Декоратор"],"metadata":{"id":"HBE6T3wjIn0D"}},{"cell_type":"code","source":["def my_decorator1(func):\n"," def decorator_func(n):\n"," print(40 * \"+\")\n"," func(n)\n"," print(40 * \"+\")\n"," return decorator_func\n","\n","@my_decorator1\n","def print_func(n):\n"," print(n * 'Hello World!')\n","\n","print_func(3)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"-CJMhbBMIrDD","executionInfo":{"status":"ok","timestamp":1674838424547,"user_tz":-180,"elapsed":1238,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"bdd7a728-34ca-4b0a-a762-d0e34f6f1542"},"execution_count":37,"outputs":[{"output_type":"stream","name":"stdout","text":["++++++++++++++++++++++++++++++++++++++++\n","Hello World!Hello World!Hello World!\n","++++++++++++++++++++++++++++++++++++++++\n"]}]},{"cell_type":"code","source":["def func12(x):\n"," return x ** 3\n","\n","x = []\n","y = []\n","\n","for xi in range(-10, 11, 1):\n"," x.append(xi)\n"," y.append(func12(xi))\n","print(x, y)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"EKVw5_fDJuUE","executionInfo":{"status":"ok","timestamp":1674838567844,"user_tz":-180,"elapsed":465,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"739786e1-a52a-48b8-b513-1c5610da2e16"},"execution_count":38,"outputs":[{"output_type":"stream","name":"stdout","text":["[-10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] [-1000, -729, -512, -343, -216, -125, -64, -27, -8, -1, 0, 1, 8, 27, 64, 125, 216, 343, 512, 729, 1000]\n"]}]},{"cell_type":"markdown","source":["Функция и возможность выбора"],"metadata":{"id":"89Krvt43KN2m"}},{"cell_type":"code","source":["def func1(x):\n"," return x ** 2\n","\n","def func2(x):\n"," return x ** 0.5\n","\n","\n","action_dict = {\n"," \"a\" : func1,\n"," \"b\" : func2\n","}\n","\n","while True:\n"," try:\n"," x = float(input(\"Введите число: \"))\n"," break\n"," except ValueError:\n"," print('Недопустимый формат')\n","\n","while True:\n"," action = input(\"Введите действие \\n a) Возведение в кавдрат \\n b) Извлечение корня \\n\")\n"," if action_dict.get(action):\n"," print(f\"Результат {action_dict[action](x)}\")\n"," break\n"," else:\n"," print('Неверные данные')"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"ly_ib_JzKNkH","executionInfo":{"status":"ok","timestamp":1674839123198,"user_tz":-180,"elapsed":27636,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"98d7e285-588b-42a2-996d-fc5043f59eb4"},"execution_count":39,"outputs":[{"output_type":"stream","name":"stdout","text":["Введите число: уук\n","Недопустимый формат\n","Введите число: 55к\n","Недопустимый формат\n","Введите число: 5\n","Введите действие \n"," a) Возведение в кавдрат \n"," b) Извлечение корня \n","a\n","Результат 25.0\n"]}]},{"cell_type":"markdown","source":["ООП"],"metadata":{"id":"dBe89a8PM1Ij"}},{"cell_type":"code","source":["class Dog():\n"," breed = 'Лабрадор'\n"," def print_breed(self):\n"," print(self.breed)\n"," def set_breed(self, value):\n"," self.breed = value\n"," def bark(self):\n"," print(\"гав\")\n","\n"," \n","dog = Dog()\n","dog.bark()\n","dog.print_breed()\n","dog.set_breed('Хаски')\n","dog.print_breed()\n","\n","dog1 = Dog()\n","dog1.print_breed()\n","# dog.print"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"H7Uy8i0QM0Y5","executionInfo":{"status":"ok","timestamp":1674839869163,"user_tz":-180,"elapsed":393,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"cfd684d8-7fdd-42f6-f41e-821eaa65c002"},"execution_count":46,"outputs":[{"output_type":"stream","name":"stdout","text":["гав\n","Лабрадор\n","Хаски\n","Лабрадор\n"]}]},{"cell_type":"code","source":["class Animal:\n"," breed = None\n","\n"," def print_breed(self):\n"," print(self.breed)\n"," \n"," def set_breed(self, value):\n"," self.breed = value\n","\n"," def play(self):\n"," print(\"Играю\")\n","\n","class Dog(Animal):\n","\n"," def bark(self):\n"," print(\"гав\")\n","\n","class Cat(Animal):\n","\n"," def purr(self):\n"," print('мяу')\n"," def play(self):\n"," print(\"Играю с мячом\")\n","\n","dog = Dog()\n","dog.print_breed()\n","dog.set_breed('Овчарка')\n","dog.print_breed()\n","dog.bark()\n","print()\n","\n","dog1 = Dog()\n","print(dog1.breed)\n","print()\n","\n","dog2 = Dog()\n","dog2.set_breed(\"Доберман\")\n","dog2.print_breed()\n","dog2.bark()\n","dog2.play()\n","print()\n","\n","cat = Cat()\n","cat.set_breed(\"Сиамская\")\n","cat.print_breed()\n","cat.purr()\n","cat.play()\n"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"N58GVWTpU96I","executionInfo":{"status":"ok","timestamp":1674842025380,"user_tz":-180,"elapsed":433,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"b2289268-1fac-430e-bec6-4bb3b0099376"},"execution_count":51,"outputs":[{"output_type":"stream","name":"stdout","text":["None\n","Овчарка\n","гав\n","\n","None\n","\n","Доберман\n","гав\n","Играю\n","\n","Сиамская\n","мяу\n","Играю с мячом\n"]}]},{"cell_type":"code","source":["class Dog:\n","\n"," def __init__(self, breed=None, name=None, age=0):\n"," self.breed = breed\n"," self.name = name\n"," self.age = age\n","\n"," def __str__(self):\n"," return f\"{self.breed} по кличке {self.name}\"\n","\n"," def __ne__(self, other):\n"," return self.age != other.age\n","\n"," def __gt__(self, other):\n"," return self.age > other.age\n","\n"," def __le__(self, other):\n"," return self.age <= other.age\n","\n","dog = Dog(\n"," breed = 'Хаски',\n"," name = 'Янара',\n"," age = 4\n",")\n","print(dog.breed)\n","\n","print(dog)\n","\n","dog1 = Dog(\n"," breed = 'Хаски',\n"," name = 'Фунтик',\n"," age = 7\n",")\n","\n","print(dog != dog1)\n","print(dog > dog1)\n","print(dog <= dog1)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"NG1sGHqxXtk6","executionInfo":{"status":"ok","timestamp":1674842737349,"user_tz":-180,"elapsed":414,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"312bce8f-169f-4db5-d998-fd9db5c20a04"},"execution_count":55,"outputs":[{"output_type":"stream","name":"stdout","text":["Хаски\n","Хаски по кличке Янара\n","True\n","False\n","True\n"]}]},{"cell_type":"code","source":["class Function:\n","\n"," def __init__(self, a = 1, b = 1, c = 1):\n"," self.a = a\n"," self.b = b\n"," self.c = c\n"," def __call__(self, x):\n"," return self.a * x ** 2 + self.b * x + self.c\n","\n","f1 = Function(\n"," a = 2,\n"," b = 4,\n"," c = 1\n",")\n","print(f1(5))"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"AjJ-NWD0aLr9","executionInfo":{"status":"ok","timestamp":1674842961020,"user_tz":-180,"elapsed":378,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"75968080-15eb-4c22-94ce-474962edd28c"},"execution_count":56,"outputs":[{"output_type":"stream","name":"stdout","text":["71\n"]}]},{"cell_type":"code","source":["class Rect:\n"," def __init__(self, a=1, b=1):\n"," self.a = a\n"," self.b = b\n"," \n"," def __sub__(self, other):\n"," return Rect(\n"," a = abs(self.a - other.a),\n"," b = abs(self.b - other.b)\n"," )\n","\n","rect1 = Rect(5, 2)\n","rect2 = Rect(2, 7)\n","\n","rect3 = rect1 - rect2\n","\n","print(rect3.a, rect3.b)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"Zxsnq1l_a7ec","executionInfo":{"status":"ok","timestamp":1674843222149,"user_tz":-180,"elapsed":437,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"b90cba48-2220-4ecd-f3c5-2ace4a715360"},"execution_count":57,"outputs":[{"output_type":"stream","name":"stdout","text":["3 5\n"]}]},{"cell_type":"code","source":["class Test:\n","\n"," _secret_field = 5\n"," __super_secret_field = 10\n","\n"," def summ(self):\n"," print(self._secret_field + self.__super_secret_field)\n","\n","t = Test()\n","t.summ()\n","print(t._secret_field)\n","t._secret_field = 7\n","print(t._secret_field)\n","\n","print(t._Test__super_secret_field)\n","t._Test__super_secret_field = 15\n","print(t._Test__super_secret_field)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"jIvTNnxocWi1","executionInfo":{"status":"ok","timestamp":1674843683334,"user_tz":-180,"elapsed":360,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"1a81e0cb-37cd-4d70-91a6-025fca6b9d48"},"execution_count":64,"outputs":[{"output_type":"stream","name":"stdout","text":["15\n","5\n","7\n","10\n","15\n"]}]},{"cell_type":"code","source":["class Rect:\n","\n"," def __init__(self, a = 1, b = 1):\n"," self.a = a\n"," self.b = b\n","\n"," @property \n"," def s(self):\n"," return self.a * self.b\n","\n"," @classmethod\n"," def square(cls, a):\n"," return cls(a,a)\n","\n"," @staticmethod\n"," def print_text(text):\n"," print(text)\n","\n","r1 = Rect(3, 5)\n","print(r1.s)\n","\n","r1.a = 10\n","print(r1.s)\n","\n","r2 = Rect.square(7)\n","print(r2.a, r2.b)\n","\n","Rect.print_text(\"rrrr\")\n","r2.print_text(\"jjj\")"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"032wHrAld0b3","executionInfo":{"status":"ok","timestamp":1674844193567,"user_tz":-180,"elapsed":659,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"ccd00f12-1f09-4421-acca-ad96ebfc6491"},"execution_count":72,"outputs":[{"output_type":"stream","name":"stdout","text":["15\n","50\n","7 7\n","rrrr\n","jjj\n"]}]},{"cell_type":"code","source":["class Solution:\n"," def __init__(self, mass = 0, comp = {}):\n"," self.mass = mass\n"," self.comp = comp\n"," self.normalize()\n","\n"," def __str__(self):\n"," s = f\"Масса: {self.mass} \\nСостав \\n\"\n"," for key in self.comp:\n"," s += f\"{key}: {self.comp[key]}\\n\"\n"," return s\n","\n"," def normalize(self):\n"," #сумму всех долей\n"," s = sum(self.comp.values())\n"," for k, v in self.comp.items():\n"," self.comp[k] = v / s\n","\n"," def __add__(self, other):\n"," new_m = self.mass + other.mass\n"," comp1 = self.comp.copy()\n"," comp2 = other.comp.copy()\n"," for key in comp1:\n"," comp1[key] *= self.mass\n"," for key in comp2:\n"," if comp1.get(key):\n"," comp1[key] += comp2[key] * other.mass\n"," else:\n"," comp1[key] = comp2[key] * other.mass\n"," return Solution(new_m, comp1)\n","\n","sol = Solution(\n"," 10,\n"," {'H2O' : 19, 'NaCl': 1}\n",")\n","print(sol)\n","\n","\n","solution1 = Solution(\n"," mass = 10,\n"," comp = {'H2O' : 0.9, 'KCl': 0.1}\n",")\n","solution2 = Solution(\n"," mass = 5,\n"," comp = {'H2O': 0.9, 'NaCl': 0.1}\n",")\n","solution3 = Solution(\n"," mass = 5,\n"," comp = {'H2O': 0.9, 'BaCl': 0.1}\n",")\n","print(solution1 + solution2 + solution3)"],"metadata":{"colab":{"base_uri":"https://localhost:8080/"},"id":"zAclx-BSeIcL","executionInfo":{"status":"ok","timestamp":1674846354166,"user_tz":-180,"elapsed":365,"user":{"displayName":"Алексей Лобанов","userId":"15292750721691573084"}},"outputId":"078af8ff-11bd-4d78-89b3-ee8a6c606021"},"execution_count":99,"outputs":[{"output_type":"stream","name":"stdout","text":["Масса: 10 \n","Состав \n","H2O: 0.95\n","NaCl: 0.05\n","\n","Масса: 20 \n","Состав \n","H2O: 0.9\n","KCl: 0.05\n","NaCl: 0.025\n","BaCl: 0.025\n","\n"]}]}]}