{"id":69,"date":"2025-02-05T18:20:09","date_gmt":"2025-02-05T18:20:09","guid":{"rendered":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/?page_id=69"},"modified":"2025-02-06T17:18:43","modified_gmt":"2025-02-06T17:18:43","slug":"shape-programming","status":"publish","type":"page","link":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/shape-programming\/","title":{"rendered":"Shape"},"content":{"rendered":"\n<!--more-->\n\n\n\n<title>Python Shape Programming Assignments<\/title>\n    \n        body {\n            font-family: Arial, sans-serif;\n            margin: 40px;\n            line-height: 1.6;\n        }\n\n        pre {\n            background: #f4f4f4;\n            padding: 10px;\n            border-radius: 5px;\n            overflow-x: auto;\n        }\n\n        .assignment {\n            border: 1px solid #ddd;\n            padding: 15px;\n            margin-bottom: 20px;\n            border-radius: 5px;\n            background: #f9f9f9;\n        }\n\n        .solution {\n            display: none;\n            background: #fff3cd;\n            padding: 10px;\n            border: 1px solid #ffeeba;\n            border-radius: 5px;\n            margin-top: 10px;\n        }\n\n        button {\n            background: #007bff;\n            color: white;\n            border: none;\n            padding: 10px;\n            cursor: pointer;\n            border-radius: 5px;\n        }\n\n        button:hover {\n            background: #0056b3;\n        }\n    \n    \n\n        function getPassword() {\n            const date = new Date();\n            const year = date.getFullYear();\n            const month = String(date.getMonth() + 1).padStart(2, &#8216;0&#8217;);\n            const day = String(date.getDate()).padStart(2, &#8216;0&#8217;);\n            const dow = date.getDay(); \/\/ Sunday=0, Monday=1, &#8230;, Saturday=6\n            return `${year}-${month}-${day}-${dow}`;\n        }\n\n        function showSolution(id) {\n            const userInput = prompt(&#8220;Enter the password to view the solution:&#8221;);\n            if (userInput === getPassword()) {\n                document.getElementById(id).style.display = &#8220;block&#8221;;\n            } else {\n                alert(&#8220;Incorrect password! Try again.&#8221;);\n            }\n        }\n    \n\n\n\n\n\n    <h1>Python Shape Programming Assignments<\/h1>\n    <p>Below are six Python programming assignments for learning how to draw shapes using loops.<\/p>\n\n    <div class=\"assignment\">\n        <h2>1. Draw a Solid Square<\/h2>\n        <p>Write a function that prints a solid square of stars.<\/p>\n        <pre>def draw_solid_square(size):\n    # Your code here\n\ndraw_solid_square(5)\n        <\/pre>\n        <p><strong>Example Output:<\/strong><\/p>\n        <pre>*****\n*****\n*****\n*****\n*****\n        <\/pre>\n        <button>View Solution<\/button>\n        <div class=\"solution\" id=\"solution1\">\n            <pre>def draw_solid_square(size):\n    for i in range(size):\n        print(\"*\" * size)\n            <\/pre>\n        <\/div>\n    <\/div>\n\n    <div class=\"assignment\">\n        <h2>2. Draw an Outline Square<\/h2>\n        <p>Write a function that prints a hollow square.<\/p>\n        <pre>def draw_outline_square(size):\n    # Your code here\n\ndraw_outline_square(5)\n        <\/pre>\n        <p><strong>Example Output:<\/strong><\/p>\n        <pre>*****\n*   *\n*   *\n*   *\n*****\n        <\/pre>\n        <button>View Solution<\/button>\n        <div class=\"solution\" id=\"solution2\">\n            <pre>def draw_outline_square(size):\n    for i in range(size):\n        if i == 0 or i == size - 1:\n            print(\"*\" * size)\n        else:\n            print(\"*\" + \" \" * (size - 2) + \"*\")\n            <\/pre>\n        <\/div>\n    <\/div>\n\n    <div class=\"assignment\">\n        <h2>3. Draw an Inner Empty Square<\/h2>\n        <p>Write a function that prints a square with a border thickness.<\/p>\n        <pre>def draw_inner_empty_square(size, thickness):\n    # Your code here\n\ndraw_inner_empty_square(7, 2)\n        <\/pre>\n        <p><strong>Example Output:<\/strong><\/p>\n        <pre>*******\n*******\n**   **\n**   **\n**   **\n*******\n*******\n        <\/pre>\n        <button>View Solution<\/button>\n        <div class=\"solution\" id=\"solution3\">\n            <pre>def draw_inner_empty_square(size, thickness):\n    for i in range(size):\n        for j in range(size):\n            if i = size - thickness or j = size - thickness:\n                print(\"*\", end=\"\")\n            else:\n                print(\" \", end=\"\")\n        print()\n            <\/pre>\n        <\/div>\n    <\/div>\n\n    <div class=\"assignment\">\n        <h2>4. Draw a Primary Diagonal<\/h2>\n        <p>Write a function that prints a diagonal from top-left to bottom-right.<\/p>\n        <pre>def draw_primary_diagonal(size):\n    # Your code here\n\ndraw_primary_diagonal(5)\n        <\/pre>\n        <p><strong>Example Output:<\/strong><\/p>\n        <pre>*    \n *   \n  *  \n   * \n    *\n        <\/pre>\n        <button>View Solution<\/button>\n        <div class=\"solution\" id=\"solution4\">\n            <pre>def draw_primary_diagonal(size):\n    for i in range(size):\n        print(\" \" * i + \"*\")\n            <\/pre>\n        <\/div>\n    <\/div>\n\n    <div class=\"assignment\">\n        <h2>5. Draw a Secondary Diagonal<\/h2>\n        <p>Write a function that prints a diagonal from top-right to bottom-left.<\/p>\n        <pre>def draw_secondary_diagonal(size):\n    # Your code here\n\ndraw_secondary_diagonal(5)\n        <\/pre>\n        <p><strong>Example Output:<\/strong><\/p>\n        <pre>    *\n   * \n  *  \n *   \n*\n        <\/pre>\n        <button>View Solution<\/button>\n        <div class=\"solution\" id=\"solution5\">\n            <pre>def draw_secondary_diagonal(size):\n    for i in range(size):\n        print(\" \" * (size - i - 1) + \"*\")\n            <\/pre>\n        <\/div>\n    <\/div>\n\n    <div class=\"assignment\">\n        <h2>6. Draw a Square with Borders and Diagonals<\/h2>\n        <p>Write a function that prints a square with its borders and both diagonals.<\/p>\n        <pre>def draw_all_lines(size):\n    # Your code here\n\ndraw_all_lines(5)\n        <\/pre>\n        <p><strong>Example Output:<\/strong><\/p>\n        <pre>*****\n** **\n* * *\n** **\n*****\n        <\/pre>\n        <button>View Solution<\/button>\n        <div class=\"solution\" id=\"solution6\">\n            <pre>def draw_all_lines(size):\n    for i in range(size):\n        for j in range(size):\n            if i == j or i == (size - j) - 1 or i == 0 or i == size - 1 or j == 0 or j == size - 1:\n                print(\"*\", end=\"\")\n            else:\n                print(\" \", end=\"\")\n        print()\n            <\/pre>\n        <\/div>\n    <\/div>\n\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":210,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"ngg_post_thumbnail":0},"_links":{"self":[{"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/pages\/69"}],"collection":[{"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/users\/210"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/comments?post=69"}],"version-history":[{"count":2,"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/pages\/69\/revisions"}],"predecessor-version":[{"id":72,"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/pages\/69\/revisions\/72"}],"wp:attachment":[{"href":"https:\/\/blog.newtonchineseschool.org\/lihaifei\/wp-json\/wp\/v2\/media?parent=69"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}