Skip to content
Snippets Groups Projects
output.ipynb 38.3 KiB
Newer Older
hacker717's avatar
hacker717 committed
{"cells": [{"cell_type": "markdown", "metadata": {}, "source": ["## **\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0441\u0443\u043c\u043c\u0430\u0442\u043e\u0440**", "\u0411\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u043e \u0437\u0430\u0434\u0430\u0447 \u044d\u0442\u043e\u0439 \u0433\u043b\u0430\u0432\u044b \u043e\u0440\u0438\u0435\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043e \u043d\u0430 \u043e\u0442\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u043d\u0430\u0432\u044b\u043a\u043e\u0432 \u043f\u043e \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.<br><br>\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0431\u0443\u0434\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u043a\u0430\u043a \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0430.<br><br>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e recursive_sum, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0441\u0443\u043c\u043c\u0443 \u0432\u0441\u0435\u0445 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0430\u0440\u0433\u0443\u043c\u0435\u043d\u0442\u043e\u0432.", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445.<br>\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = recursive_sum(1, 2, 3)<br> <br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 recursive_sum(1, 2, 3)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum(1, 2)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum(1)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum()<br>result = 6<br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = recursive_sum(7, 1, 3, 2, 10)<br> <br> <br> <br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 recursive_sum(7, 1, 3, 2, 10)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum(7, 1, 3, 2)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum(7, 1, 3)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum(7, 1)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum(7)<br># \u0412\u044b\u0437\u043e\u0432 recursive_sum()<br>result = 23<br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def recursive_sum(*nums):", "    nums = list(nums)", "    if nums:", "        return nums[-1] + recursive_sum(*nums[:-1])", "    else:", "        return 0"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0439 \u0441\u0443\u043c\u043c\u0430\u0442\u043e\u0440 \u0446\u0438\u0444\u0440**", "\u0420\u0435\u043a\u0443\u0440\u0441\u0438\u044f \u2013 \u043e\u0442\u043b\u0438\u0447\u043d\u044b\u0439 \u0441\u043f\u043e\u0441\u043e\u0431 \u0438\u0437\u0431\u0430\u0432\u0438\u0442\u044c\u0441\u044f \u043e\u0442 \u0446\u0438\u043a\u043b\u043e\u0432, \u043e\u0441\u043e\u0431\u0435\u043d\u043d\u043e \u043e\u0442 while. \u0414\u0430\u0432\u0430\u0439\u0442\u0435 \u0432\u0441\u043f\u043e\u043c\u043d\u0438\u043c \u043e\u0434\u043d\u0443 \u0438\u0437 \u043d\u0430\u0448\u0438\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0437\u0430\u0434\u0430\u0447 \u0438 \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u043c \u0435\u0451.<br><br>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e recursive_digit_sum, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043d\u0430\u0445\u043e\u0434\u0438\u0442 \u0441\u0443\u043c\u043c\u0443 \u0432\u0441\u0435\u0445 \u0446\u0438\u0444\u0440 \u043d\u0430\u0442\u0443\u0440\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u0447\u0438\u0441\u043b\u0430.", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445.<br>\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = recursive_digit_sum(123)<br> <br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(123)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(12)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(1)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(0)<br>result = 6<br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = recursive_digit_sum(7321346)<br> <br> <br> <br> <br> <br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(7321346)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(732134)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(73213)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(7321)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(732)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(73)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(7)<br># \u0412\u044b\u0437\u043e\u0432 recursive_digit_sum(0)<br>result = 26<br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def recursive_digit_sum(nums):", "    if type(nums) is int:", "        nums = list(str(nums))", "    if nums:", "        return int(nums[-1]) + recursive_digit_sum(nums[:-1])", "    else:", "        return 0"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u041c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d N-\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438**", "\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e make_equation, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u043e \u0437\u0430\u0434\u0430\u043d\u043d\u044b\u043c \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c \u0441\u0442\u0440\u043e\u0438\u0442 \u0441\u0442\u0440\u043e\u043a\u0443, \u043e\u043f\u0438\u0441\u044b\u0432\u0430\u044e\u0449\u0443\u044e \u0432\u0430\u043b\u0438\u0434\u043d\u043e\u0435 \u0441 \u0442\u043e\u0447\u043a\u0438 \u0437\u0440\u0435\u043d\u0438\u044f Python \u0432\u044b\u0440\u0430\u0436\u0435\u043d\u0438\u0435 \u0431\u0435\u0437 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0432\u043e\u0437\u0432\u0435\u0434\u0435\u043d\u0438\u044f \u0432 \u0441\u0442\u0435\u043f\u0435\u043d\u044c.<br><br>\u041c\u043d\u043e\u0433\u043e\u0447\u043b\u0435\u043d \u0432\u0442\u043e\u0440\u043e\u0439 \u0441\u0442\u0435\u043f\u0435\u043d\u0438 \u0441 \u043a\u043e\u044d\u0444\u0444\u0438\u0446\u0438\u0435\u043d\u0442\u0430\u043c\u0438  <br>a<br> a,  <br>b<br> b \u0438  <br>c<br> c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0438\u0441\u0430\u0442\u044c \u0432 \u0432\u0438\u0434\u0435:<br>(<br>a<br>)<br>\u2217<br>x<br>+<br>b<br>)<br>\u2217<br>x<br>+<br>c<br> ((a)\u2217x+b)\u2217x+c", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445.<br>\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = make_equation(3, 2, 1)<br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 make_equation(3, 2, 1)<br># \u0412\u044b\u0437\u043e\u0432 make_equation(3, 2)<br># \u0412\u044b\u0437\u043e\u0432 make_equation(3)<br>result = '((3) * x + 2) * x + 1'<br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = make_equation(3, 1, 5, 3)<br> <br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 make_equation(3, 1, 5, 3)<br># \u0412\u044b\u0437\u043e\u0432 make_equation(3, 1, 5)<br># \u0412\u044b\u0437\u043e\u0432 make_equation(3, 1)<br># \u0412\u044b\u0437\u043e\u0432 make_equation(3)<br>result = '(((3) * x + 1) * x + 5) * x + 3'<br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def make_equation(*nums):", "    nums = list(nums)", "    if len(nums) > 1:", "        return f\"({make_equation(*nums[:-1])}) * x + {nums[-1]}\"", "    else:", "        return nums[-1]"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u0414\u0435\u043a\u043e\u0440 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430**", "\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 answer, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0435\u043e\u0431\u0440\u0430\u0437\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e, \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u044e\u0449\u0443\u044e \u043d\u0435\u043e\u0433\u0440\u0430\u043d\u0438\u0447\u0435\u043d\u043d\u043e\u0435 \u0447\u0438\u0441\u043b\u043e \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u0438 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0451 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441 \u043f\u0440\u0438\u043f\u0438\u0441\u043a\u043e\u0439 \"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: <\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435>\".", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|@answer<br>def a_plus_b(a, b):<br>    return a + b<br><br><br>print(a_plus_b(3, 5))<br>print(a_plus_b(7, 9))<br>|\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: 8<br>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: 16<br> <br> <br> <br> <br> <br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|@answer<br>def get_letters(text: str) -> str:<br>    return ''.join(sorted(set(filter(str.isalpha, text.lower()))))<br><br><br>print(get_letters('Hello, world!'))<br>print(get_letters('\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e =)'))<br>|\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: dehlorw<br>\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: \u0430\u0434\u0435\u043a\u043e\u0440\u0442\u0443\u044b\u044d<br> <br> <br> <br> <br> <br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def answer(f):", "    def add_result(*args, **kwargs):", "        return f\"\u0420\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u0438: {f(*args, **kwargs)}\"", "    return add_result"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u041d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430**", "\u0412 \u043d\u0435\u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u0441\u043b\u0443\u0447\u0430\u044f\u0445 \u043f\u043e\u043b\u0435\u0437\u043d\u043e \u043d\u0430\u043a\u0430\u043f\u043b\u0438\u0432\u0430\u0442\u044c \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442, \u0430 \u0437\u0430\u0442\u0435\u043c \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u0435\u0433\u043e \u0435\u0434\u0438\u043d\u044b\u043c \u0441\u043f\u0438\u0441\u043a\u043e\u043c.<br><br>\u0420\u0435\u0430\u043b\u0438\u0437\u0443\u0439\u0442\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 result_accumulator, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043c\u043e\u0434\u0435\u0440\u043d\u0438\u0437\u0438\u0440\u0443\u0435\u0442 \u0444\u0443\u043d\u043a\u0446\u0438\u044e \u0441 \u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u043d\u044b\u043c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\u043c \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:<br>", "* \u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u0442 \u0438\u043c\u0435\u043d\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 method \u0441\u043e \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0435\u043c \u043f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e accumulate;", "* \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c method \u0440\u0430\u0432\u043d\u044b\u043c accumulate, \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442 \u0441\u043e\u0445\u0440\u0430\u043d\u044f\u0435\u0442\u0441\u044f \u0432 \u043e\u0447\u0435\u0440\u0435\u0434\u044c (\u0434\u043b\u044f \u043a\u0430\u0436\u0434\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u0443\u044e), \u0430 \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u043d\u0438\u0447\u0435\u0433\u043e \u043d\u0435 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442;", "* \u041f\u0440\u0438 \u0432\u044b\u0437\u043e\u0432\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c method \u0440\u0430\u0432\u043d\u044b\u043c drop, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442\u0441\u044f \u0432\u0441\u0435 \u043d\u0430\u043a\u043e\u043f\u043b\u0435\u043d\u043d\u044b\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u044b, \u0430 \u043e\u0447\u0435\u0440\u0435\u0434\u044c \u0441\u0431\u0440\u0430\u0441\u044b\u0432\u0430\u0435\u0442\u0441\u044f.", "", "", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|@result_accumulator<br>def a_plus_b(a, b):<br>    return a + b<br><br><br>print(a_plus_b(3, 5, method=\"accumulate\"))<br>print(a_plus_b(7, 9))<br>print(a_plus_b(-3, 5, method=\"drop\"))<br>print(a_plus_b(1, -7))<br>print(a_plus_b(10, 35, method=\"drop\"))<br>|None<br>None<br>[8, 16, 2]<br>None<br>[-6, 45]<br> <br> <br> <br> <br> <br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|@result_accumulator<br>def get_letters(text: str) -> str:<br>    return ''.join(sorted(set(filter(str.isalpha, text.lower()))))<br><br><br>print(get_letters('Hello, world!'))<br>print(get_letters('\u0414\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440\u044b \u044d\u0442\u043e \u043a\u0440\u0443\u0442\u043e =)'))<br>print(get_letters('\u0415\u0445\u0430\u043b\u0438 \u043c\u0435\u0434\u0432\u0435\u0434\u0438 \u043d\u0430 \u0432\u0435\u043b\u043e\u0441\u0438\u043f\u0435\u0434\u0435', method='drop'))<br>|None<br>None<br>['dehlorw', '\u0430\u0434\u0435\u043a\u043e\u0440\u0442\u0443\u044b\u044d', '\u0430\u0432\u0434\u0435\u0438\u043b\u043c\u043d\u043e\u043f\u0441\u0445']<br> <br> <br> <br> <br> <br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def result_accumulator(f):", "    res_list = []", "    ", "    def decorator(*args, method=\"accumulate\"):", "        nonlocal res_list", "        res_list.append(f(*args))", "        if method == \"drop\":", "            a = res_list.copy()", "            res_list = []", "            return a", "        else:", "            return None", "        ", "    return decorator"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u0421\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0441\u043b\u0438\u044f\u043d\u0438\u0435\u043c**", "\u041c\u044b \u0443\u0436\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u043e\u0432\u044b\u0432\u0430\u043b\u0438 \u0444\u0443\u043d\u043a\u0446\u0438\u044e merge, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u0441\u043f\u043e\u0441\u043e\u0431\u043d\u0430 \"\u0441\u043b\u0438\u0442\u044c\" \u0434\u0432\u0430 \u043e\u0442\u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0445 \u0441\u043f\u0438\u0441\u043a\u0430 \u0432 \u043e\u0434\u0438\u043d.<br>\u0427\u0430\u0449\u0435 \u0432\u0441\u0435\u0433\u043e \u0435\u0451 \u043f\u0440\u0438\u043c\u0435\u043d\u044f\u044e\u0442 \u0432 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u043c \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u0435 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0438 \u0441\u043b\u0438\u044f\u043d\u0438\u0435\u043c.<br><br>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u0443\u044e \u0444\u0443\u043d\u043a\u0446\u0438\u044e merge_sort, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u0441\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u043a\u0443 \u0441\u043f\u0438\u0441\u043a\u0430.", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445.<br>\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = merge_sort([3, 2, 1])<br> <br> <br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 merge_sort([3, 2, 1])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([3])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([2, 1])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([2])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([1])<br>result = [1, 2, 3]<br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = merge_sort([3, 1, 5, 3])<br> <br> <br> <br> <br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 merge_sort([3, 1, 5, 3])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([3, 1])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([3])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([1])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([5, 3])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([5])<br># \u0412\u044b\u0437\u043e\u0432 merge_sort([3])<br>result = [1, 3, 3, 5]<br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def merge_sort(lnum):", "    if len(lnum) > 1:", "        return merge(merge_sort(lnum[:len(lnum) // 2]), merge_sort(lnum[len(lnum) // 2:]))", "    else:", "        return lnum", "", "", "def merge(nums1, nums2):", "    res = []", "    while nums1 or nums2:", "        if not nums1:", "            res.append(nums2[0])", "            del nums2[0]", "        elif not nums2:", "            res.append(nums1[0])", "            del nums1[0]", "        else:", "            if nums1[0] < nums2[0]:", "                res.append(nums1[0])", "                del nums1[0]", "            else:", "                res.append(nums2[0])", "                del nums2[0]", "    return res"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u041e\u0434\u043d\u043e\u0442\u0438\u043f\u043d\u043e\u0441\u0442\u044c \u043d\u0435 \u043f\u043e\u0440\u043e\u043a**", "\u0412\u043e \u043c\u043d\u043e\u0433\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445 \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0432\u0445\u043e\u0434\u043d\u044b\u0445 \u0434\u0430\u043d\u043d\u044b\u0445, \u0432 \u0447\u0430\u0441\u0442\u043d\u043e\u0441\u0442\u0438, \u043d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0443\u044e \u0442\u0438\u043f\u0438\u0437\u0430\u0446\u0438\u044e, \u0438\u0445 \u0442\u0438\u043f\u043e\u0432.<br><br>\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0430\u0439\u0442\u0435 \u0434\u0435\u043a\u043e\u0440\u0430\u0442\u043e\u0440 same_type, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043f\u043e\u0437\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432. \u0412 \u0441\u043b\u0443\u0447\u0430\u0435 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u044f \u043d\u0435 \u043e\u0434\u0438\u043d\u0430\u043a\u043e\u0432\u044b\u0445 \u0442\u0438\u043f\u043e\u0432 \u0432\u044b\u0432\u043e\u0434\u0438\u0442 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \"\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445\" \u0438 \u043f\u0440\u0435\u0440\u044b\u0432\u0430\u0435\u0442 \u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u0438.", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|@same_type<br>def a_plus_b(a, b):<br>    return a + b<br><br><br>print(a_plus_b(3, 5.2) or 'Fail')<br>print(a_plus_b(7, '9') or 'Fail')<br>print(a_plus_b(-3, 5) or 'Fail')<br>|\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<br>Fail<br>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<br>Fail<br>2<br> <br> <br> <br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|@same_type<br>def combine_text(*words):<br>    return ' '.join(words)<br><br><br>print(combine_text('Hello,', 'world!') or 'Fail')<br>print(combine_text(2, '+', 2, '=', 4) or 'Fail')<br>print(combine_text('\u0421\u043f\u0438\u0441\u043e\u043a \u0438\u0437 30', 0, '\u043c\u043e\u0436\u043d\u043e \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0442\u0430\u043a', [0] * 30) or 'Fail')<br>|Hello, world!<br>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<br>Fail<br>\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445<br>Fail<br> <br> <br> <br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def same_type(func):", "    def checker(*args):", "        for i in range(len(args) - 1):", "            if type(args[i]) is not type(args[i + 1]):", "                print(\"\u041e\u0431\u043d\u0430\u0440\u0443\u0436\u0435\u043d\u044b \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 \u0442\u0438\u043f\u044b \u0434\u0430\u043d\u043d\u044b\u0445\")", "                break", "        else:", "            return func(*args)", "    return checker"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u0413\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438**", "\u0427\u0438\u0441\u043b\u0430 \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438 \u0432\u0435\u0441\u044c\u043c\u0430 \u0438\u043d\u0442\u0435\u0440\u0435\u0441\u043d\u0430\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0432 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u043c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0437\u0430\u0434\u0430\u0447\u0430\u0445. \u0412 \u043d\u0435\u0439 \u043a\u0430\u0436\u0434\u044b\u0439 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0439 \u044d\u043b\u0435\u043c\u0435\u043d\u0442 \u0440\u0430\u0432\u0435\u043d \u0441\u0443\u043c\u043c\u0435 \u0434\u0432\u0443\u0445 \u043f\u0440\u0435\u0434\u044b\u0434\u0443\u0449\u0438\u0445. \u041c\u0430\u0442\u0435\u043c\u0430\u0442\u0438\u043a\u0438 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442 \u044d\u0442\u0443 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0441 \u0434\u0432\u0443\u0445 \u0435\u0434\u0438\u043d\u0438\u0446, \u043d\u043e \u043c\u044b \u0436\u0435 \u0441 \u0432\u0430\u043c\u0438 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b, \u043f\u043e\u044d\u0442\u043e\u043c\u0443 \u043f\u0440\u0438\u0432\u044b\u043a\u043b\u0438 \u0432\u0435\u0441\u0442\u0438 \u0441\u0447\u0435\u0442 \u0441 \u043d\u0443\u043b\u044f.<br><br>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 fibonacci, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u043e\u0441\u043b\u0435\u0434\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u043d\u043e \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0435 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0447\u0438\u0441\u0435\u043b \u0424\u0438\u0431\u043e\u043d\u0430\u0447\u0447\u0438 \u043f\u043e \"\u043f\u0440\u0430\u0432\u0438\u043b\u0430\u043c \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u043e\u0432\".", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|print(*fibonacci(5))<br>|0 1 1 2 3<br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|print(*fibonacci(10), sep=', ')<br>|0, 1, 1, 2, 3, 5, 8, 13, 21, 34<br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def fibonacci(n):", "    a, b = 0, 1", "    for _ in range(n):", "        yield a", "        a, b = b, a + b"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\u0426\u0438\u043a\u043b\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440**", "\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 cycle, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0438 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u0430\u043d\u0430\u043b\u043e\u0433\u0438\u0447\u043d\u043e \u0438\u0442\u0435\u0440\u0430\u0442\u043e\u0440\u0443 itertools.cycle.", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|print(*(x for _, x in zip(range(5), cycle([1, 2, 3]))))<br>|1 2 3 1 2<br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|print(*(x for _, x in zip(range(15), cycle([1, 2, 3, 4]))))<br>|1 2 3 4 1 2 3 4 1 2 3 4 1 2 3<br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def cycle(lnums):", "    c = 0", "    while True:", "        yield lnums[c % len(lnums)]", "        c += 1"]}, {"cell_type": "markdown", "metadata": {}, "source": ["## **\"\u0412\u044b\u043f\u0440\u044f\u043c\u043b\u0435\u043d\u0438\u0435\" \u0441\u043f\u0438\u0441\u043a\u0430**", "\u0412\u0435\u0441\u044c\u043c\u0430 \u0447\u0430\u0441\u0442\u043e, \u0434\u0430\u043d\u043d\u044b\u0435, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043c\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u043c \u0438\u0437 \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0445 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432, \u043d\u0435 \u0443\u0434\u043e\u0432\u043b\u0435\u0442\u0432\u043e\u0440\u044f\u044e\u0442 \u043d\u0430\u0448\u0438\u043c \u043f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u044f\u043c. \u041e\u0434\u043d\u0430 \u0438\u0437 \u0447\u0430\u0441\u0442\u044b\u0445 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u2013 \u0438\u0437\u043b\u0438\u0448\u043d\u044f\u044f \u0432\u043b\u043e\u0436\u0435\u043d\u043d\u043e\u0441\u0442\u044c \u0441\u043f\u0438\u0441\u043a\u043e\u0432.<br><br>\u041d\u0430\u043f\u0438\u0448\u0438\u0442\u0435 \u0444\u0443\u043d\u043a\u0446\u0438\u044e make_linear, \u043a\u043e\u0442\u043e\u0440\u0430\u044f \u043f\u0440\u0438\u043d\u0438\u043c\u0430\u0435\u0442 \u0441\u043f\u0438\u0441\u043e\u043a \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u0435\u0433\u043e \"\u0432\u044b\u043f\u0440\u044f\u043c\u043b\u0435\u043d\u043d\u043e\u0435\" \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u0438\u0435.", "### **\u041f\u0440\u0438\u043c\u0435\u0447\u0430\u043d\u0438\u0435**", "\u0412\u0430\u0448\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0442\u044c \u0442\u043e\u043b\u044c\u043a\u043e \u0444\u0443\u043d\u043a\u0446\u0438\u0438.<br>\u0412 \u0440\u0435\u0448\u0435\u043d\u0438\u0438 \u043d\u0435 \u0434\u043e\u043b\u0436\u043d\u043e \u0431\u044b\u0442\u044c \u0432\u044b\u0437\u043e\u0432\u043e\u0432 \u0442\u0440\u0435\u0431\u0443\u0435\u043c\u044b\u0445 \u0444\u0443\u043d\u043a\u0446\u0438\u0439, \u0437\u0430 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435\u043c \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u044b\u0445.<br>\u0422\u0440\u0430\u0441\u0441\u0438\u0440\u043e\u0432\u043a\u0430 \u0432\u044b\u0437\u043e\u0432\u0430 \u0440\u0435\u043a\u0443\u0440\u0441\u0438\u0432\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u0438 \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0435 \u043e\u0442\u0432\u0435\u0442\u0430 \u043d\u0435 \u0443\u0447\u0438\u0442\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0438 \u043f\u043e\u043a\u0430\u0437\u0430\u043d\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u043c\u0435\u0440\u0430.", "### **\u041f\u0440\u0438\u043c\u0435\u0440 1**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = make_linear([1, 2, [3]])<br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 make_linear([1, 2, [3]])<br># \u0412\u044b\u0437\u043e\u0432 make_linear([3])<br>result = [1, 2, 3]<br>|", "### **\u041f\u0440\u0438\u043c\u0435\u0440 2**", "|\u0412\u0432\u043e\u0434 |\u0412\u044b\u0432\u043e\u0434|", "|-----|-----|", "|result = make_linear([1, [2, [3, 4]], 5, 6])<br> <br> <br> <br>|# \u0412\u044b\u0437\u043e\u0432 make_linear([1, [2, [3, 4]], 5, 6])<br># \u0412\u044b\u0437\u043e\u0432 make_linear([2, [3, 4]])<br># \u0412\u044b\u0437\u043e\u0432 make_linear([3, 4])<br>result = [1, 2, 3, 4, 5, 6]<br>|"]}, {"cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": ["def make_linear(ldata):", "    if type(ldata) is not list:", "        return ldata", "    i = 0", "    while i != len(ldata):", "        if type(ldata[i]) is list:", "            ldata = ldata[:i] + make_linear(ldata[i]) + ldata[i + 1:]", "        i += 1", "    return ldata"]}], "metadata": {"kernelspec": {"display_name": "Python 3", "language": "python", "name": "python3"}, "language_info": {"name": "python", "version": "3.11.1"}}, "nbformat": 4, "nbformat_minor": 2}