{"id":117577,"date":"2026-05-07T17:22:58","date_gmt":"2026-05-07T11:52:58","guid":{"rendered":"https:\/\/www.mygreatlearning.com\/blog\/?page_id=117577"},"modified":"2026-05-07T17:21:22","modified_gmt":"2026-05-07T11:51:22","slug":"python-program-recursive-factorial","status":"publish","type":"page","link":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/","title":{"rendered":"Python Program Recursive Factorial"},"content":{"rendered":"\n<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n  <meta charset=\"UTF-8\" \/>\n  <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" \/>\n  <title>Exercise 6.3<\/title>\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/codemirror.min.css\" \/>\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/theme\/eclipse.min.css\" \/>\n  <link rel=\"stylesheet\" href=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/font-awesome\/6.4.0\/css\/all.min.css\">\n\n  <style>\n    \/* Wrapper to protect styles *\/\n    .py-receipt-wrapper {\n        \/* Local CSS Variables *\/\n        --py-bg-app: #f9fafb;\n        --py-bg-panel: #ffffff;\n        --py-border: #e5e7eb;\n        --py-text-primary: #1f2937;\n        --py-text-secondary: #6b7280;\n        --py-primary-blue: #2563eb;\n        --py-primary-hover: #1d4ed8;\n        --py-header-height: 50px;\n        --py-footer-height: 60px;\n\n        font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, sans-serif;\n        background-color: var(--py-bg-app);\n        color: var(--py-text-primary);\n        width: 100%;\n        border: 1px solid var(--py-border);\n        box-sizing: border-box;\n    }\n\n    .py-receipt-wrapper * { box-sizing: border-box; }\n\n    .py-receipt-top-nav {\n        display: flex;\n        align-items: center;\n        justify-content: space-between;\n        height: var(--py-header-height);\n        padding: 0 20px;\n        background: var(--py-bg-panel);\n        border-bottom: 1px solid var(--py-border);\n        min-width: 100%;\n    }\n    .py-receipt-nav-title {\n        font-weight: 600;\n        color: var(--py-text-secondary);\n        font-size: 14px;\n    }\n\n    .py-receipt-ide-container {\n        display: flex;\n        height: 100%;\n        min-width: 100%;\n        background: white;\n        overflow: hidden;\n    }\n\n    .py-receipt-left-pane {\n        width: 45%;\n        border-right: 1px solid var(--py-border);\n        background: var(--py-bg-panel);\n        display: flex;\n        flex-direction: column;\n    }\n\n    .py-receipt-tabs-header {\n        height: var(--py-header-height);\n        border-bottom: 1px solid var(--py-border);\n        display: flex;\n        align-items: center;\n        padding: 0 20px;\n        gap: 25px;\n        font-size: 14px;\n        font-weight: 500;\n        color: var(--py-text-secondary);\n    }\n\n    .py-receipt-tab-item { cursor: pointer; padding: 14px 0; border-bottom: 2px solid transparent; }\n    .py-receipt-tab-item.active { color: var(--py-text-primary); border-bottom-color: var(--py-primary-blue); }\n    .py-receipt-tab-item:hover { color: var(--py-text-primary); }\n\n    .py-receipt-pane-content { flex: 1; overflow-y: auto; padding: 25px; display: none; }\n    .py-receipt-pane-content.active { display: block; }\n\n    .py-receipt-wrapper h1 { margin-top: 0; font-size: 22px; font-weight: 600; color: var(--py-text-primary); margin-bottom: 1rem; }\n    .py-receipt-wrapper p { line-height: 1.6; color: #374151; margin-bottom: 1rem; }\n    .py-receipt-wrapper ul { margin-bottom: 20px; color: #374151; line-height: 1.6; padding-left: 20px; }\n    .py-receipt-wrapper li { margin-bottom: 5px; }\n    .py-receipt-wrapper h3 { font-size: 16px; margin-top: 15px; margin-bottom: 10px; }\n\n    .py-receipt-solution-block {\n        background: #f8f9fa; border: 1px solid var(--py-border); padding: 15px;\n        border-radius: 6px; font-family: 'Consolas', monospace; font-size: 14px;\n        color: #333; white-space: pre-wrap; overflow-x: auto;\n    }\n\n    .py-receipt-sample-box { background-color: #f3f4f6; border: 1px solid var(--py-border); border-radius: 6px; margin-top: 20px; overflow: hidden; }\n    .py-receipt-sample-header { display: flex; background-color: #e5e7eb; font-size: 13px; font-weight: 600; color: var(--py-text-primary); }\n    .py-receipt-sample-col-title { width: 50%; padding: 8px 15px; border-right: 1px solid #d1d5db; }\n    .py-receipt-sample-col-content { width: 50%; padding: 15px; font-family: 'Consolas', monospace; font-size: 14px; border-right: 1px solid var(--py-border); white-space: pre-wrap; color: #333; }\n    .py-receipt-sample-body { display: flex; }\n\n    .py-receipt-right-pane {\n        width: 55%; display: flex; flex-direction: column; background: var(--py-bg-panel);\n    }\n\n    .py-receipt-editor-top-bar {\n        height: var(--py-header-height); border-bottom: 1px solid var(--py-border);\n        display: flex; align-items: center; justify-content: space-between;\n        padding: 0 15px; background-color: #f9fafb;\n    }\n\n    .py-receipt-lang-label { font-weight: 600; font-size: 14px; background: #e5e7eb; padding: 4px 12px; border-radius: 4px; }\n    .py-receipt-editor-settings i { color: var(--py-text-secondary); margin-left: 15px; cursor: pointer; font-size: 16px; }\n\n    .py-receipt-code-area { flex: 1; display: flex; flex-direction: column; position: relative; }\n    .py-receipt-code-area .CodeMirror { flex: 1; height: 100%; position: absolute; top: 0; bottom: 0; left: 0; right: 0; font-family: 'Source Code Pro', monospace; font-size: 15px; }\n\n    .py-receipt-console-section {\n        border-top: 1px solid var(--py-border); background: #f9fafb;\n        display: flex; flex-direction: column; height: 35%;\n    }\n    .py-receipt-console-header { padding: 8px 15px; background: #e5e7eb; font-size: 12px; font-weight: 600; color: var(--py-text-secondary); text-transform: uppercase; }\n    .py-receipt-console-body { display: flex; flex: 1; overflow: hidden; }\n    .py-receipt-input-wrapper, .py-receipt-output-wrapper { flex: 1; display: flex; flex-direction: column; padding: 10px; border-right: 1px solid var(--py-border); }\n    .py-receipt-output-wrapper { border-right: none; }\n    .py-receipt-console-label { font-size: 12px; font-weight: 600; margin-bottom: 5px; color: var(--py-text-secondary); }\n    \n    textarea.py-receipt-custom-input-area { flex: 1; border: 1px solid var(--py-border); border-radius: 4px; resize: none; padding: 8px; font-family: monospace; width: 100%; }\n    .py-receipt-output-display { flex: 1; background: white; border: 1px solid var(--py-border); border-radius: 4px; padding: 8px; font-family: monospace; white-space: pre-wrap; overflow-y: auto; font-size: 13px; }\n\n    .py-receipt-footer-actions {\n        height: var(--py-footer-height);\n        border-top: 1px solid var(--py-border);\n        display: flex;\n        align-items: center;\n        justify-content: flex-end;\n        padding: 0 20px;\n        background-color: var(--py-bg-panel);\n    }\n\n    .py-receipt-execution-group { display: flex; gap: 12px; align-items: center; }\n\n    .py-receipt-btn {\n        padding: 8px 20px;\n        border-radius: 4px;\n        font-size: 14px;\n        font-weight: 600;\n        cursor: pointer;\n        text-decoration: none;\n        display: inline-flex;\n        align-items: center;\n        justify-content: center;\n        transition: 0.2s;\n        height: 38px;\n        box-shadow: none;\n        border: none;\n    }\n\n    .py-receipt-btn-secondary { background: transparent; border: 1px solid var(--py-border); color: var(--py-text-primary); }\n    .py-receipt-btn-secondary:hover { background: #f3f4f6; }\n\n    .py-receipt-btn-primary { background: var(--py-primary-blue); border: 1px solid var(--py-primary-blue); color: white; }\n    .py-receipt-btn-primary:hover { background: var(--py-primary-hover); }\n\n    .py-receipt-spinner {\n        display: none; width: 14px; height: 14px;\n        border: 2px solid #fff; border-top-color: transparent;\n        border-radius: 50%; animation: py-receipt-spin 0.8s linear infinite; margin-left: 8px;\n    }\n    @keyframes py-receipt-spin { 100% { transform: rotate(360deg); } }\n\n    .py-receipt-hidden { display: none !important; }\n    .py-receipt-btn-mobile { display: none !important; }\n\n    @media (max-width: 768px) {\n        .py-receipt-top-nav { display: none; }\n        .py-receipt-ide-container { flex-direction: column; overflow-y: auto; height: auto; }\n        .py-receipt-left-pane, .py-receipt-right-pane { width: 100%; height: auto; }\n        .py-receipt-left-pane { border-right: none; border-bottom: 8px solid #f3f4f6; min-height: auto; max-height: 400px; }\n        .py-receipt-right-pane { display: flex; flex-direction: column; }\n        .py-receipt-console-section, .py-receipt-console-body, .py-receipt-footer-actions { display: contents; }\n        .py-receipt-console-header { display: none; }\n        .py-receipt-editor-top-bar { order: 1; }\n        .py-receipt-code-area { order: 2; height: 500px; }\n        .py-receipt-code-area .CodeMirror { position: relative; height: 500px; }\n        .py-receipt-input-wrapper { order: 3; width: 100%; height: auto; min-height: 280px; border-right: none; border-top: 8px solid #f3f4f6; border-bottom: 1px solid var(--py-border); }\n        .py-receipt-execution-group { order: 4; width: 100%; display: flex; padding: 15px; gap: 10px; border-bottom: 1px solid var(--py-border); background: #fff; }\n        .py-receipt-execution-group .py-receipt-btn { flex: 1; }\n        .py-receipt-output-wrapper { order: 5; width: 100%; height: auto; min-height: 300px; max-height: 500px; border-right: none; background: #fff; }\n        .py-receipt-btn-mobile { display: inline-flex !important; order: 6; width: 48%; margin: 15px 1%; box-sizing: border-box; text-align: center; }\n        a.py-receipt-hidden { display: none !important; }\n    }\n  <\/style>\n<\/head>\n\n<body>\n\n<div class=\"py-receipt-wrapper\">\n    <div class=\"py-receipt-top-nav\">\n        <a id=\"py-receipt-btn-prev-top\" class=\"py-receipt-btn py-receipt-btn-secondary py-receipt-hidden\" href=\"\">&larr; Previous<\/a>\n        <span class=\"py-receipt-nav-title\">Module 6: Functions<\/span>\n        <a id=\"py-receipt-btn-next-top\" class=\"py-receipt-btn py-receipt-btn-primary py-receipt-hidden\" href=\"#\">Next &rarr;<\/a>\n    <\/div>\n\n    <div class=\"py-receipt-ide-container\" id=\"py-receipt-ideContainer\">\n        \n        <div class=\"py-receipt-left-pane\">\n            <div class=\"py-receipt-tabs-header\">\n                <div class=\"py-receipt-tab-item active\" onclick=\"pyReceiptSwitchTab('statement')\">Statement<\/div>\n                <div class=\"py-receipt-tab-item\" onclick=\"pyReceiptSwitchTab('solution')\">Solution<\/div>\n            <\/div>\n\n            <div id=\"py-receipt-tab-statement\" class=\"py-receipt-pane-content active\">\n                <h1 id=\"python-exercise-6-3-recursive-factorial\">Python Exercise 6.3: Recursive Factorial<\/h1>\n                <p>Calculate factorial using recursion (function calling itself).<\/p>\n                <p>Your program should:<\/p>\n                <ul>\n                    <li>Define a recursive function <code>factorial(n)<\/code>.<\/li>\n                    <li>Base case: if n == 0 or n == 1, return 1.<\/li>\n                    <li>Recursive case: return n * factorial(n-1).<\/li>\n                    <li>Test with user input.<\/li>\n                <\/ul>\n\n                <h3 id=\"sample-interaction\">Sample Interaction:<\/h3>\n                <div class=\"py-receipt-sample-box\">\n                    <div class=\"py-receipt-sample-header\">\n                        <div class=\"py-receipt-sample-col-title\">Input<\/div>\n                        <div class=\"py-receipt-sample-col-title\">Output<\/div>\n                    <\/div>\n                    <div class=\"py-receipt-sample-body\">\n                        <div class=\"py-receipt-sample-col-content\">5<\/div>\n                        <div class=\"py-receipt-sample-col-content\">120<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div id=\"py-receipt-tab-solution\" class=\"py-receipt-pane-content\">\n                <h1 id=\"solution\">Solution<\/h1>\n                <p>Here is the recursive factorial function.<\/p>\n                <div class=\"py-receipt-solution-block\">def factorial(n):\n    if n == 0 or n == 1:\n        return 1\n    else:\n        return n * factorial(n - 1)\n\n# Test the function\nn = int(input(\"Enter n: \"))\nprint(factorial(n))<\/div>\n                \n                <p style=\"margin-top:20px\"><strong>Key Concepts:<\/strong><\/p>\n                <ul>\n                    <li>Recursion calls the function itself.<\/li>\n                    <li>Base case prevents infinite recursion.<\/li>\n                    <li>Recursive case breaks down the problem.<\/li>\n                <\/ul>\n            <\/div>\n        <\/div>\n\n        <div class=\"py-receipt-right-pane\">\n            <div class=\"py-receipt-editor-top-bar\">\n                <span class=\"py-receipt-lang-label\">Python 3<\/span>\n                <div class=\"py-receipt-editor-settings\">\n                    <i class=\"fas fa-expand\" id=\"py-receipt-fullscreenBtn\" title=\"Toggle Fullscreen\"><\/i>\n                <\/div>\n            <\/div>\n\n            <div class=\"py-receipt-code-area\">\n                <div id=\"py-receipt-code-editor-div\"><\/div>\n            <\/div>\n\n            <div class=\"py-receipt-console-section\">\n                <div class=\"py-receipt-console-header\">Test Console<\/div>\n                <div class=\"py-receipt-console-body\">\n                    <div class=\"py-receipt-input-wrapper\">\n                        <label class=\"py-receipt-console-label\">Custom Input (Stdin)<\/label>\n                        <textarea id=\"py-receipt-custom-input\" class=\"py-receipt-custom-input-area\" placeholder=\"Enter input here...\">5<\/textarea>\n                    <\/div>\n                    <div class=\"py-receipt-output-wrapper\">\n                        <label class=\"py-receipt-console-label\">Output<\/label>\n                        <div id=\"py-receipt-output-console\" class=\"py-receipt-output-display\">Run code to see output...<\/div>\n                    <\/div>\n                <\/div>\n            <\/div>\n\n            <div class=\"py-receipt-footer-actions\">\n                <a id=\"py-receipt-btn-prev-mobile\" class=\"py-receipt-btn py-receipt-btn-secondary py-receipt-hidden py-receipt-btn-mobile\" href=\"\">&larr; Previous<\/a>\n\n                <div class=\"py-receipt-execution-group\">\n                    <button class=\"py-receipt-btn py-receipt-btn-secondary\" onclick=\"pyReceiptResetCode()\">Reset<\/button>\n                    <button class=\"py-receipt-btn py-receipt-btn-primary\" onclick=\"pyReceiptRunCode()\">\n                        <span id=\"py-receipt-btn-text\">Run Code<\/span>\n                        <span class=\"py-receipt-spinner\" id=\"py-receipt-btn-spinner\"><\/span>\n                    <\/button>\n                <\/div>\n\n                <a id=\"py-receipt-btn-next-mobile\" class=\"py-receipt-btn py-receipt-btn-primary py-receipt-hidden py-receipt-btn-mobile\" href=\"#\">Next &rarr;<\/a>\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/codemirror.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/mode\/python\/python.min.js\"><\/script>\n<script src=\"https:\/\/cdnjs.cloudflare.com\/ajax\/libs\/codemirror\/5.65.16\/addon\/edit\/closebrackets.min.js\"><\/script>\n\n<script>\n    var pyReceiptEditor;\n    var pyReceiptStarterCode;\n\n    const pyReceiptPrevLink = \"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-prime-number-generator\";\n    const pyReceiptNextLink = \"\";\n\n    document.addEventListener(\"DOMContentLoaded\", function() {\n        const prevBtnTop = document.getElementById('py-receipt-btn-prev-top');\n        const nextBtnTop = document.getElementById('py-receipt-btn-next-top');\n        const prevBtnMobile = document.getElementById('py-receipt-btn-prev-mobile');\n        const nextBtnMobile = document.getElementById('py-receipt-btn-next-mobile');\n\n              if (pyReceiptPrevLink && pyReceiptPrevLink.trim() !== \"\") {\n    prevBtnTop.classList.remove('py-receipt-hidden');\n    prevBtnTop.href = pyReceiptPrevLink;         \/\/ \u2190 ADD\n    prevBtnMobile.classList.remove('py-receipt-hidden');\n    prevBtnMobile.href = pyReceiptPrevLink;      \/\/ \u2190 ADD\n}\n\nif (pyReceiptNextLink && pyReceiptNextLink.trim() !== \"\") {\n    nextBtnTop.classList.remove('py-receipt-hidden');\n    nextBtnTop.href = pyReceiptNextLink;         \/\/ \u2190 ADD\n    nextBtnMobile.classList.remove('py-receipt-hidden');\n    nextBtnMobile.href = pyReceiptNextLink;      \/\/ \u2190 ADD\n}\n    });\n\n    function pyReceiptSwitchTab(tabName) {\n        document.querySelectorAll('.py-receipt-pane-content').forEach(el => el.classList.remove('active'));\n        document.querySelectorAll('.py-receipt-tab-item').forEach(el => el.classList.remove('active'));\n        document.getElementById('py-receipt-tab-' + tabName).classList.add('active');\n        const tabs = document.querySelectorAll('.py-receipt-tab-item');\n        if(tabName === 'statement') tabs[0].classList.add('active');\n        if(tabName === 'solution') tabs[1].classList.add('active');\n    }\n\n    const pyReceiptFullscreenBtn = document.getElementById('py-receipt-fullscreenBtn');\n    const pyReceiptIdeContainer = document.getElementById('py-receipt-ideContainer');\n\n    if(pyReceiptFullscreenBtn) {\n        pyReceiptFullscreenBtn.addEventListener('click', () => {\n            if (!document.fullscreenElement) {\n                pyReceiptIdeContainer.requestFullscreen().catch(err => alert(`Error: ${err.message}`));\n                pyReceiptFullscreenBtn.classList.replace('fa-expand', 'fa-compress');\n            } else {\n                document.exitFullscreen();\n                pyReceiptFullscreenBtn.classList.replace('fa-compress', 'fa-expand');\n            }\n        });\n    }\n\n    pyReceiptStarterCode = `# Exercise 6.3: Recursive Factorial\n# Write a recursive factorial function\n\n# 1. Define the factorial function\n\n# 2. Test the function with user input\n`;\n\n    pyReceiptEditor = CodeMirror(document.getElementById(\"py-receipt-code-editor-div\"), {\n        value: pyReceiptStarterCode,\n        mode: \"python\",\n        theme: \"eclipse\",\n        lineNumbers: true,\n        indentUnit: 4,\n        autoCloseBrackets: true\n    });\n\n    function pyReceiptResetCode() {\n        pyReceiptEditor.setValue(pyReceiptStarterCode);\n        document.getElementById('py-receipt-output-console').textContent = 'Run code to see output...';\n    }\n\n    function pyReceiptRunCode() {\n        const spinner = document.getElementById('py-receipt-btn-spinner');\n        const btnText = document.getElementById('py-receipt-btn-text');\n        const outputBox = document.getElementById('py-receipt-output-console');\n        \n        spinner.style.display = \"inline-block\";\n        btnText.innerText = \"Running \";\n        outputBox.innerText = \"Processing...\";\n        outputBox.style.color = \"#6b7280\";\n\n        const pythonCode = pyReceiptEditor.getValue();\n        const userInput = document.getElementById('py-receipt-custom-input').value;\n\n        fetch(\"https:\/\/blogsupport123-python-compiler.hf.space\/api\/run-python\", {\n            method: \"POST\",\n            headers: { \"Content-Type\": \"application\/json\" },\n            body: JSON.stringify({ code: pythonCode, input: userInput }),\n        })\n        .then(response => response.json())\n        .then(data => {\n            if (data.output) {\n                outputBox.innerText = data.output;\n                outputBox.style.color = \"#1f2937\";\n            } else if (data.error || data.errors) {\n                outputBox.innerText = data.error || data.errors;\n                outputBox.style.color = \"#ef4444\";\n            } else {\n                outputBox.innerText = \"No output returned.\";\n            }\n        })\n        .catch(err => {\n            outputBox.innerText = \"Error: \" + err.message;\n            outputBox.style.color = \"#ef4444\";\n        })\n        .finally(() => {\n            spinner.style.display = \"none\";\n            btnText.innerText = \"Run Code\";\n        });\n    }\n<\/script>\n\n<\/body>\n<\/html>\n","protected":false},"excerpt":{"rendered":"<p>Exercise 6.3 &larr; Previous Module 6: Functions Next &rarr; Statement Solution Python Exercise 6.3: Recursive Factorial Calculate factorial using recursion (function calling itself). Your program should: Define a recursive function factorial(n). Base case: if n == 0 or n == 1, return 1. Recursive case: return n * factorial(n-1). Test with user input. Sample Interaction: [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":0,"parent":114145,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"disabled","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[25860],"tags":[36796,36895],"class_list":["post-117577","page","type-page","status-publish","hentry","category-software","tag-python","tag-python-exercise"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.3 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Python Program Recursive Factorial - Great Learning Blog: Free Resources what Matters to shape your Career!<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python Program Recursive Factorial\" \/>\n<meta property=\"og:description\" content=\"Exercise 6.3 &larr; Previous Module 6: Functions Next &rarr; Statement Solution Python Exercise 6.3: Recursive Factorial Calculate factorial using recursion (function calling itself). Your program should: Define a recursive function factorial(n). Base case: if n == 0 or n == 1, return 1. Recursive case: return n * factorial(n-1). Test with user input. Sample Interaction: [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/\" \/>\n<meta property=\"og:site_name\" content=\"Great Learning Blog: Free Resources what Matters to shape your Career!\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/GreatLearningOfficial\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:site\" content=\"@Great_Learning\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/\"},\"author\":{\"name\":\"Great Learning Editorial Team\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\"},\"headline\":\"Python Program Recursive Factorial\",\"datePublished\":\"2026-05-07T11:52:58+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/\"},\"wordCount\":121,\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"keywords\":[\"python\",\"python-exercise\"],\"articleSection\":[\"IT\\\/Software Development\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/\",\"name\":\"Python Program Recursive Factorial - Great Learning Blog: Free Resources what Matters to shape your Career!\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\"},\"datePublished\":\"2026-05-07T11:52:58+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/python-program-recursive-factorial\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python Exercises\",\"item\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/python-exercise\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Python Program Recursive Factorial\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"name\":\"Great Learning Blog\",\"description\":\"Learn, Upskill &amp; Career Development Guide and Resources\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\"},\"alternateName\":\"Great Learning\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#organization\",\"name\":\"Great Learning\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/06\\\/GL-Logo.jpg\",\"width\":900,\"height\":900,\"caption\":\"Great Learning\"},\"image\":{\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/GreatLearningOfficial\\\/\",\"https:\\\/\\\/x.com\\\/Great_Learning\",\"https:\\\/\\\/www.instagram.com\\\/greatlearningofficial\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/in.pinterest.com\\\/greatlearning12\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/beaconelearning\\\/\"],\"description\":\"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.\",\"email\":\"info@mygreatlearning.com\",\"legalName\":\"Great Learning Education Services Pvt. Ltd\",\"foundingDate\":\"2013-11-29\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"1001\",\"maxValue\":\"5000\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/#\\\/schema\\\/person\\\/6f993d1be4c584a335951e836f2656ad\",\"name\":\"Great Learning Editorial Team\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"contentUrl\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/02\\\/unnamed.webp\",\"caption\":\"Great Learning Editorial Team\"},\"description\":\"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.\",\"sameAs\":[\"https:\\\/\\\/www.mygreatlearning.com\\\/\",\"https:\\\/\\\/in.linkedin.com\\\/school\\\/great-learning\\\/\",\"https:\\\/\\\/x.com\\\/https:\\\/\\\/twitter.com\\\/Great_Learning\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCObs0kLIrDjX2LLSybqNaEA\"],\"award\":[\"Best EdTech Company of the Year 2024\",\"Education Economictimes Outstanding Education\\\/Edtech Solution Provider of the Year 2024\",\"Leading E-learning Platform 2024\"],\"url\":\"https:\\\/\\\/www.mygreatlearning.com\\\/blog\\\/author\\\/greatlearning\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Python Program Recursive Factorial - Great Learning Blog: Free Resources what Matters to shape your Career!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/","og_locale":"en_US","og_type":"article","og_title":"Python Program Recursive Factorial","og_description":"Exercise 6.3 &larr; Previous Module 6: Functions Next &rarr; Statement Solution Python Exercise 6.3: Recursive Factorial Calculate factorial using recursion (function calling itself). Your program should: Define a recursive function factorial(n). Base case: if n == 0 or n == 1, return 1. Recursive case: return n * factorial(n-1). Test with user input. Sample Interaction: [&hellip;]","og_url":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/","og_site_name":"Great Learning Blog: Free Resources what Matters to shape your Career!","article_publisher":"https:\/\/www.facebook.com\/GreatLearningOfficial\/","twitter_card":"summary_large_image","twitter_site":"@Great_Learning","twitter_misc":{"Est. reading time":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/#article","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/"},"author":{"name":"Great Learning Editorial Team","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad"},"headline":"Python Program Recursive Factorial","datePublished":"2026-05-07T11:52:58+00:00","mainEntityOfPage":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/"},"wordCount":121,"publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"keywords":["python","python-exercise"],"articleSection":["IT\/Software Development"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/","url":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/","name":"Python Program Recursive Factorial - Great Learning Blog: Free Resources what Matters to shape your Career!","isPartOf":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#website"},"datePublished":"2026-05-07T11:52:58+00:00","breadcrumb":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/python-program-recursive-factorial\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.mygreatlearning.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Python Exercises","item":"https:\/\/www.mygreatlearning.com\/blog\/python-exercise\/"},{"@type":"ListItem","position":3,"name":"Python Program Recursive Factorial"}]},{"@type":"WebSite","@id":"https:\/\/www.mygreatlearning.com\/blog\/#website","url":"https:\/\/www.mygreatlearning.com\/blog\/","name":"Great Learning Blog","description":"Learn, Upskill &amp; Career Development Guide and Resources","publisher":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization"},"alternateName":"Great Learning","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mygreatlearning.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.mygreatlearning.com\/blog\/#organization","name":"Great Learning","url":"https:\/\/www.mygreatlearning.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/06\/GL-Logo.jpg","width":900,"height":900,"caption":"Great Learning"},"image":{"@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/GreatLearningOfficial\/","https:\/\/x.com\/Great_Learning","https:\/\/www.instagram.com\/greatlearningofficial\/","https:\/\/www.linkedin.com\/school\/great-learning\/","https:\/\/in.pinterest.com\/greatlearning12\/","https:\/\/www.youtube.com\/user\/beaconelearning\/"],"description":"Great Learning is a leading global ed-tech company for professional training and higher education. It offers comprehensive, industry-relevant, hands-on learning programs across various business, technology, and interdisciplinary domains driving the digital economy. These programs are developed and offered in collaboration with the world's foremost academic institutions.","email":"info@mygreatlearning.com","legalName":"Great Learning Education Services Pvt. Ltd","foundingDate":"2013-11-29","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"1001","maxValue":"5000"}},{"@type":"Person","@id":"https:\/\/www.mygreatlearning.com\/blog\/#\/schema\/person\/6f993d1be4c584a335951e836f2656ad","name":"Great Learning Editorial Team","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","url":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","contentUrl":"https:\/\/www.mygreatlearning.com\/blog\/wp-content\/uploads\/2022\/02\/unnamed.webp","caption":"Great Learning Editorial Team"},"description":"The Great Learning Editorial Staff includes a dynamic team of subject matter experts, instructors, and education professionals who combine their deep industry knowledge with innovative teaching methods. Their mission is to provide learners with the skills and insights needed to excel in their careers, whether through upskilling, reskilling, or transitioning into new fields.","sameAs":["https:\/\/www.mygreatlearning.com\/","https:\/\/in.linkedin.com\/school\/great-learning\/","https:\/\/x.com\/https:\/\/twitter.com\/Great_Learning","https:\/\/www.youtube.com\/channel\/UCObs0kLIrDjX2LLSybqNaEA"],"award":["Best EdTech Company of the Year 2024","Education Economictimes Outstanding Education\/Edtech Solution Provider of the Year 2024","Leading E-learning Platform 2024"],"url":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"}]}},"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false,"web-stories-poster-portrait":false,"web-stories-publisher-logo":false,"web-stories-thumbnail":false},"uagb_author_info":{"display_name":"Great Learning Editorial Team","author_link":"https:\/\/www.mygreatlearning.com\/blog\/author\/greatlearning\/"},"uagb_comment_info":0,"uagb_excerpt":"Exercise 6.3 &larr; Previous Module 6: Functions Next &rarr; Statement Solution Python Exercise 6.3: Recursive Factorial Calculate factorial using recursion (function calling itself). Your program should: Define a recursive function factorial(n). Base case: if n == 0 or n == 1, return 1. Recursive case: return n * factorial(n-1). Test with user input. Sample Interaction:&hellip;","_links":{"self":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/117577","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/comments?post=117577"}],"version-history":[{"count":2,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/117577\/revisions"}],"predecessor-version":[{"id":117591,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/117577\/revisions\/117591"}],"up":[{"embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/pages\/114145"}],"wp:attachment":[{"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/media?parent=117577"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/categories?post=117577"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.mygreatlearning.com\/blog\/wp-json\/wp\/v2\/tags?post=117577"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}