Newer
Older
{"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}