{"id":375,"date":"2024-11-21T18:56:10","date_gmt":"2024-11-21T18:56:10","guid":{"rendered":"https:\/\/equipomedios.com\/blog\/?p=375"},"modified":"2024-10-18T18:56:52","modified_gmt":"2024-10-18T18:56:52","slug":"funciones-recursivas-python","status":"publish","type":"post","link":"https:\/\/equipomedios.com\/blog\/funciones-recursivas-python\/","title":{"rendered":"Funciones recursivas | Python"},"content":{"rendered":"<h1>Funciones recursivas<\/h1>\n<p>Las funciones recursivas son funciones que se llaman a s\u00ed mismas durante su propia ejecuci\u00f3n. Ellas funcionan de forma similar a las iteraciones, pero debe encargarse de planificar el momento en que dejan de llamarse a s\u00ed mismas o tendr\u00e1 una funci\u00f3n recursiva infinita.<\/p>\n<p>Estas funciones se estilan utilizar para dividir una tarea en sub-tareas m\u00e1s simples de forma que sea m\u00e1s f\u00e1cil abordar el problema y solucionarlo.<\/p>\n<div id=\"funcion-recursiva-sin-retorno\" class=\"section\">\n<h2>Funci\u00f3n recursiva sin retorno<\/h2>\n<p>Un ejemplo de una funci\u00f3n recursiva sin retorno, es el ejemplo de cuenta regresiva hasta cero a partir de un n\u00famero:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"k\">def<\/span> <span class=\"nf\">cuenta_regresiva<\/span><span class=\"p\">(<\/span><span class=\"n\">numero<\/span><span class=\"p\">):<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"n\">numero<\/span> <span class=\"o\">-=<\/span> <span class=\"mi\">1<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"k\">if<\/span> <span class=\"n\">numero<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">0<\/span><span class=\"p\">:<\/span>\r\n<span class=\"gp\">... <\/span>        <span class=\"nb\">print<\/span> <span class=\"n\">numero<\/span>\r\n<span class=\"gp\">... <\/span>        <span class=\"n\">cuenta_regresiva<\/span><span class=\"p\">(<\/span><span class=\"n\">numero<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\r\n<span class=\"gp\">... <\/span>        <span class=\"nb\">print<\/span> <span class=\"s2\">\"Boooooooom!\"<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"nb\">print<\/span> <span class=\"s2\">\"Fin de la funci\u00f3n\"<\/span><span class=\"p\">,<\/span> <span class=\"n\">numero<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"n\">cuenta_regresiva<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">4<\/span>\r\n<span class=\"go\">3<\/span>\r\n<span class=\"go\">2<\/span>\r\n<span class=\"go\">1<\/span>\r\n<span class=\"go\">Boooooooom!<\/span>\r\n<span class=\"go\">Fin de la funci\u00f3n 0<\/span>\r\n<span class=\"go\">Fin de la funci\u00f3n 1<\/span>\r\n<span class=\"go\">Fin de la funci\u00f3n 2<\/span>\r\n<span class=\"go\">Fin de la funci\u00f3n 3<\/span>\r\n<span class=\"go\">Fin de la funci\u00f3n 4<\/span>\r\n<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<div id=\"funcion-recursiva-con-retorno\" class=\"section\">\n<h2>Funci\u00f3n recursiva con retorno<\/h2>\n<p>Un ejemplo de una funci\u00f3n recursiva con retorno, es el ejemplo del calculo del factorial de un n\u00famero corresponde al producto de todos los n\u00fameros desde 1 hasta el propio n\u00famero. Es el ejemplo con retorno m\u00e1s utilizado para mostrar la utilidad de este tipo de funciones:<\/p>\n<div class=\"highlight-default notranslate\">\n<div class=\"highlight\">\n<pre><span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"k\">def<\/span> <span class=\"nf\">factorial<\/span><span class=\"p\">(<\/span><span class=\"n\">numero<\/span><span class=\"p\">):<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"nb\">print<\/span> <span class=\"s2\">\"Valor inicial -&gt;\"<\/span><span class=\"p\">,<\/span><span class=\"n\">numero<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"k\">if<\/span> <span class=\"n\">numero<\/span> <span class=\"o\">&gt;<\/span> <span class=\"mi\">1<\/span><span class=\"p\">:<\/span>\r\n<span class=\"gp\">... <\/span>        <span class=\"n\">numero<\/span> <span class=\"o\">=<\/span> <span class=\"n\">numero<\/span> <span class=\"o\">*<\/span> <span class=\"n\">factorial<\/span><span class=\"p\">(<\/span><span class=\"n\">numero<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"p\">)<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"nb\">print<\/span> <span class=\"s2\">\"valor final -&gt;\"<\/span><span class=\"p\">,<\/span><span class=\"n\">numero<\/span>\r\n<span class=\"gp\">... <\/span>    <span class=\"k\">return<\/span> <span class=\"n\">numero<\/span>\r\n<span class=\"gp\">...<\/span>\r\n<span class=\"gp\">&gt;&gt;&gt; <\/span><span class=\"nb\">print<\/span> <span class=\"n\">factorial<\/span><span class=\"p\">(<\/span><span class=\"mi\">5<\/span><span class=\"p\">)<\/span>\r\n<span class=\"go\">Valor inicial -&gt; 5<\/span>\r\n<span class=\"go\">Valor inicial -&gt; 4<\/span>\r\n<span class=\"go\">Valor inicial -&gt; 3<\/span>\r\n<span class=\"go\">Valor inicial -&gt; 2<\/span>\r\n<span class=\"go\">Valor inicial -&gt; 1<\/span>\r\n<span class=\"go\">valor final -&gt; 1<\/span>\r\n<span class=\"go\">valor final -&gt; 2<\/span>\r\n<span class=\"go\">valor final -&gt; 6<\/span>\r\n<span class=\"go\">valor final -&gt; 24<\/span>\r\n<span class=\"go\">valor final -&gt; 120<\/span>\r\n<span class=\"go\">120<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Funciones recursivas Las funciones recursivas son funciones que se llaman a s\u00ed mismas durante su propia ejecuci\u00f3n. Ellas funcionan de forma similar a las iteraciones, pero debe encargarse de planificar el momento en que dejan de llamarse a s\u00ed mismas o tendr\u00e1 una funci\u00f3n recursiva infinita. Estas funciones se estilan utilizar para dividir una tarea [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":331,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","enabled":false},"version":2}},"categories":[39,40],"tags":[],"class_list":["post-375","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","category-python"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/equipomedios.com\/blog\/wp-content\/uploads\/2024\/08\/python-logo-master-v3-TM.png?fit=601%2C203&ssl=1","jetpack_sharing_enabled":true,"jetpack-related-posts":[],"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/375","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/comments?post=375"}],"version-history":[{"count":1,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/375\/revisions"}],"predecessor-version":[{"id":376,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/posts\/375\/revisions\/376"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media\/331"}],"wp:attachment":[{"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/media?parent=375"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/categories?post=375"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/equipomedios.com\/blog\/wp-json\/wp\/v2\/tags?post=375"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}