{"id":9419,"date":"2021-05-01T16:34:02","date_gmt":"2021-05-01T14:34:02","guid":{"rendered":"https:\/\/pythonprogramming.altervista.org\/?p=9419"},"modified":"2021-05-01T16:34:03","modified_gmt":"2021-05-01T14:34:03","slug":"how-to-solve-problems-with-python-and-regex","status":"publish","type":"post","link":"https:\/\/pythonprogramming.altervista.org\/how-to-solve-problems-with-python-and-regex\/","title":{"rendered":"How to solve problems with Python and regex"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Let&#8217;s see how can we solve a <strong>problem <\/strong>automatically thanks to <strong>python <\/strong>getting the data from a text and making also the computer to find the solution for you, using the modile re for regex (tecnique to extract data from strings).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"446\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-4.png\" alt=\"\" class=\"wp-image-9421\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-4.png 680w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-4-320x210.png 320w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">We will get a Break even point problem for example. Let&#8217;s see how to do it, step by step.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Find all numbers in a text (\\d+)<\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"542\" height=\"561\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-1.png\" alt=\"\" class=\"wp-image-9414\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-1.png 542w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-1-320x331.png 320w\" sizes=\"auto, (max-width: 542px) 100vw, 542px\" \/><\/a><\/figure>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import re\n\n\ntmp = '''\nFind q\nwith:\n- p = 10 \u20ac\n- cv = 5 \u20ac\n\nCF = 3000 \u20ac\n\nsolution = \u20ac\u20ac\u20ac\n'''\n\ndata = re.findall(r\"\\d+\", tmp)\nprint(data)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The output<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"460\" height=\"94\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image.png\" alt=\"\" class=\"wp-image-9413\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image.png 460w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-320x65.png 320w\" sizes=\"auto, (max-width: 460px) 100vw, 460px\" \/><\/a><figcaption>Find all the numbers with \\d+<\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">A nice way to use the example above with the f string, notice that with the = symbol you can easily get what the value is related to.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import re\n\n\ntmp = '''\nFind q\nwith:\n- p = 10 \u20ac\n- cv = 5 \u20ac\n\nCF = 3000 \u20ac\n\nsolution = \u20ac\u20ac\u20ac\n'''\n\ndata = re.findall(r\"\\d+\", tmp)\np, cv, CF = data\nprint(f\"{p=}\\n{cv=}\\n{CF=}\")<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">output<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-2.png\"><img loading=\"lazy\" decoding=\"async\" width=\"162\" height=\"147\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-2.png\" alt=\"\" class=\"wp-image-9415\"\/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">And you can also use the data to find a solution. In this case you got the fixed costs (CF) and the price and cost of the variable costs, so that you can find the break even point, that is the amount of sellings that make an enterprice to recover all the costs.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">p, cv, CF = [int(x) for x in data]\nprint(f\"{p=}\\n{cv=}\\n{CF=}\")\n\nsolution = CF \/ (p -cv)\nprint(solution)\nprint(\"This is the number of products you have to sell so that the revenues are equal to the costs.\")<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The output would be this<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"519\" height=\"307\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-3.png\" alt=\"\" class=\"wp-image-9416\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-3.png 519w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-3-320x189.png 320w\" sizes=\"auto, (max-width: 519px) 100vw, 519px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Let&#8217;s make the exercise customizable<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import re\n\ndef ex1(p=10, cv=5, CF=3000, sol=0):\n\t''' solve a bep problem '''\n\ttmp = f'''Find q with:\n\t- p = {p} \u20ac\n\t- cv = {cv} \u20ac\n\t- CF = {CF} \u20ac\n\tsolution = \u20ac\u20ac\u20ac\n\t'''\n\tpattern = r\"(\\d+(?:\\.\\d+)?)\"\n\tdata = re.findall(pattern, tmp)\n\tprint(data)\n\tp, cv, CF = [float(x) for x in data]\n\tprint(f\"{p=}\\n{cv=}\\n{CF=}\")\n\tsolution = int(CF \/ (p -cv))\n\t# print the solution if you pass sol=1\n\tif sol:\n\t\ttmp = tmp.replace(\"\u20ac\u20ac\u20ac\", str(solution))\n\tprint(tmp)\n\nex1()<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If we call the ex1() function without arguments, the results will be the same, but if we give the function some arguments like this:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ex1(p=12, cv=8.5, CF=100000, sol=1)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-5.png\"><img loading=\"lazy\" decoding=\"async\" width=\"324\" height=\"281\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-5.png\" alt=\"\" class=\"wp-image-9422\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-5.png 324w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-5-320x278.png 320w\" sizes=\"auto, (max-width: 324px) 100vw, 324px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">You can now put more call to the function with different data as argument for different solutions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Making random exercises for students with solution<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">This is to make random exercises. Let&#8217;s start<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import re\nimport random\n\n\ndef ex1(p=10, cv=5, CF=3000, sol=0):\n\t''' solve a bep problem '''\n\ttmp = f'''Trova il BEP sapendo che:\n\t- p = {p} \u20ac\n\t- cv = {cv} \u20ac\n\t- CF = {CF} \u20ac\n\tsolution = \u20ac\u20ac\u20ac\n\t'''\n\tpattern = r\"(\\d+(?:\\.\\d+)?)\"\n\tdata = p, cv, CF = re.findall(pattern, tmp)\n\t# print(f\"{p=} {cv=} {CF=}\")\n\tp, cv, CF = [float(x) for x in data]\n\t# print(f\"{p=} \u20ac\\n{cv=} \u20ac\\n{CF=} \u20ac\")\n\tsolution = int(CF \/ (p -cv))\n\t# print the solution if you pass sol=1\n\tif sol:\n\t\ttmp = tmp.replace(\"\u20ac\u20ac\u20ac\", str(solution))\n\tprint(tmp)\n\ndef randomize(number):\n\tfor r in range(number):\n\t\tp = random.randint(10, 20)\n\t\tcv = random.randint(p-10, p-5)\n\t\tCF = random.randrange(\n\t\t\t(p-cv)*random.randrange(1000, 2000, 100),\n\t\t\t(p-cv)*random.randrange(4000, 20000, 100),\n\t\t\t100\n\t\t\t)\n\t\tex1(p, cv, CF, sol=1)\n\n# ex1()\n# ex1(p=12, cv=8.5, CF=100000, sol=1)\nrandomize(3)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Output<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-6.png\"><img loading=\"lazy\" decoding=\"async\" width=\"382\" height=\"556\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-6.png\" alt=\"\" class=\"wp-image-9424\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-6.png 382w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2021\/05\/image-6-320x466.png 320w\" sizes=\"auto, (max-width: 382px) 100vw, 382px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Transform it in a quiz<\/h2>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import re\nimport random\n\n\ndef ex1(p=10, cv=5, CF=3000, sol=0, quiz=0):\n\t''' solve a bep problem '''\n\ttmp = f'''Trova il BEP sapendo che:\n\t- p = {p} \u20ac\n\t- cv = {cv} \u20ac\n\t- CF = {CF} \u20ac\n\t                [sol: ...........]\n\t'''\n\tpattern = r\"(\\d+(?:\\.\\d+)?)\"\n\tdata = p, cv, CF = re.findall(pattern, tmp)\n\t# print(f\"{p=} {cv=} {CF=}\")\n\tp, cv, CF = [float(x) for x in data]\n\t# print(f\"{p=} \u20ac\\n{cv=} \u20ac\\n{CF=} \u20ac\")\n\tsolution = int(CF \/ (p -cv))\n\t# print the solution if you pass sol=1\n\tif quiz:\n\t\tprint(tmp)\n\t\task(solution)\n\telse:\n\t\tif sol:\n\t\t\ttmp = tmp.replace(\"sol: ...........\", \"Soluzione: \" + str(solution))\n\t\t\tprint(tmp)\n\t\telse:\n\t\t\tprint(tmp)\n\ndef randomize(number=0, quiz=0, sol=0):\n\tfor r in range(number):\n\t\tp = random.randint(10, 20)\n\t\tcv = random.randint(p-10, p-5)\n\t\tCF = random.randrange(\n\t\t\t(p-cv)*random.randrange(1000, 2000, 100),\n\t\t\t(p-cv)*random.randrange(4000, 20000, 100),\n\t\t\t100\n\t\t\t)\n\t\tex1(p, cv, CF, sol, quiz)\n\ndef ask(solution):\n\tyousol = input(\"Sol:\")\n\tif yousol == str(solution):\n\t\tprint(\"Good job!\")\n\telse:\n\t\tprint(\"No, it's wrong\")\n\t\tprint(f\"{solution=}\\n\")\n# ex1()\n# ex1(p=12, cv=8.5, CF=100000, sol=1)\nrandomize(3, quiz=0, sol=0)<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Let&#8217;s make it simple<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">We do not need the re module anymore.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">import random\n\n\ndef ex1(p=10, cv=5, CF=3000, sol=0, quiz=0):\n\t''' solve a bep problem '''\n\n\ttmp = f'''Trova il BEP sapendo che:\n\t- p = {p} \u20ac\n\t- cv = {cv} \u20ac\n\t- CF = {CF} \u20ac\n\t                [sol: ...........]\n\t                '''\n\n\tsolution = int(CF \/ (p -cv))\n\t# print the solution if you pass sol=1\n\tif quiz:\n\t\tprint(tmp)\n\t\task(solution)\n\telse:\n\t\tif sol:\n\t\t\ttmp = tmp.replace(\"sol: ...........\", \"Soluzione: \" + str(solution))\n\t\t\tprint(tmp)\n\t\telse:\n\t\t\tprint(tmp)\n\ndef randomize(number=0, quiz=0, sol=0):\n\tfor r in range(number):\n\t\tp = random.randint(10, 20)\n\t\tcv = random.randint(p-10, p-5)\n\t\tCF = random.randrange(\n\t\t\t(p-cv)*random.randrange(1000, 2000, 100),\n\t\t\t(p-cv)*random.randrange(4000, 20000, 100),\n\t\t\t100\n\t\t\t)\n\t\tex1(p, cv, CF, sol, quiz)\n\ndef ask(solution):\n\tyousol = input(\"Sol:\")\n\tif yousol == str(solution):\n\t\tprint(\"Good job!\\n\")\n\telse:\n\t\tprint(\"No, it's wrong\")\n\t\tprint(f\"{solution=}\\n\")\n# ex1()\n# ex1(sol=1)\n# ex1(p=12, cv=8.5, CF=100000, sol=1)\nrandomize(3, quiz=1, sol=1)<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">How you can use it<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td>ex1()<\/td><td>the example with default data<\/td><\/tr><tr><td>ex1(sol=1)<\/td><td>same as above, but with the solution<\/td><\/tr><tr><td>ex1(p=12, cv=10, CF=2000, sol=1)<\/td><td>custom exercise<br>p = price<br>cv = variable costs<br>CF = fixed costs<br>sol=1 # to show the solution<\/td><\/tr><tr><td>randomize(3, sol=1)<\/td><td>creates 3 random exercizes with solution<\/td><\/tr><tr><td> randomize(3, quiz=1) <\/td><td>Makes a quiz with 3 problems to solve<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"How to solve problems with Python and regex\" width=\"747\" height=\"560\" src=\"https:\/\/www.youtube.com\/embed\/U1Q1j_QcWQE?feature=oembed&amp;enablejsapi=1\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n\n<\/div><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><!-- se vuoi mettere un testo scorrevole\r\n[hoops name=\"typeWriterGen\"]\r\n\r\npoi metti un id diverso per ogni testo nella stessa pagina\r\n\r\n<div id=\"div01\">\r\n<script>\r\n\r\ntypeWriterGen(\"div01\",\"Esempio di testo scorrevole\");\r\n<\/script>\r\n\r\n-->\r\n<style>\r\n.avatar {\r\n  vertical-align: middle;\r\n  width: 100px;\r\n  height: 100px;\r\n  border-radius: 50%;\r\n}\r\n<\/style>\r\n\r\n<hr>\r\n\r\n<!-- NEWSLETTER LINK -->\r\n<a href=\"https:\/\/docs.google.com\/forms\/d\/e\/1FAIpQLSf7TniIPCWHDzCSGh2dYZaCwDvi9yLKS5ovFdKuK1sdfOvwEg\/viewform\">\r\n<img decoding=\"async\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/08\/image-13.png\" class=\"avatar\">\r\nSubscribe to the <b>newsletter<\/b> for updates<\/a><br>\r\n\r\n<!-- TKINTER TEMPLATE LINK -->\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/tkinter-templates\/\">\r\n<img decoding=\"async\" src=\"https:\/\/i0.wp.com\/pythonprogramming.altervista.org\/wp-content\/uploads\/2023\/07\/image-26.png\" class=\"avatar\">\r\nTkinter templates<\/a><br>\r\n\r\n<!-- MY AVATAR PUT A LINK TO YOUTUBE CHANNEL-->\r\n<iframe loading=\"lazy\" frameborder=\"0\" src=\"https:\/\/itch.io\/embed\/711828\" width=\"552\" height=\"167\"><a href=\"https:\/\/pythonprogrammi.itch.io\/pysnake\">PySnake by PythonProgrammi<\/a><\/iframe>\r\n<br>\r\n<style>\r\n.avatar {\r\n  vertical-align: middle;\r\n  width: 100px;\r\n  height: 100px;\r\n  border-radius: 50%;\r\n}\r\n<\/style>\r\n\r\n\r\n<a href=\"https:\/\/www.youtube.com\/channel\/UCzbxq5e9gLiY-je2-br1rvg\">\r\n\t<img decoding=\"async\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2020\/10\/avatar64x64.png\" alt=\"Avatar\" class=\"avatar\">\r\n\t My youtube channel<\/a><br>\r\n\r\n<br>\r\n\r\nTwitter: <a href=\"https:\/\/twitter.com\/pythonprogrammi\">@pythonprogrammi - python_pygame<\/a>\r\n<h3>Claude's Games<\/h3>\r\n<p><a href=\"https:\/\/pythonprogramming.altervista.org\/random-daily-game-1-arkanoid\/\">Arkanoid<\/a><br>\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/platform-2d-with-pygame-made-with-claude\/\">Platform 2d<\/a><\/p> <!-- videogames made with claude -->\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/artifacts-games-day-1-memory-game\/\">1. Memory game<\/a>\r\n<h4>Videos<\/h4>\r\n<a href=\"https:\/\/youtu.be\/ciLjWWw5pLY\">Speech recognition game<\/a>\r\n<h3>Pygame's Platform Game<\/h3>\r\n\r\n<a href=\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-5-sounds-and-mixer\/\"><img decoding=\"async\" src=\"https:\/\/i1.wp.com\/pythonprogramming.altervista.org\/wp-content\/uploads\/2020\/01\/climbercover.png?w=557&ssl=1\"\/ width=\"50%\"><\/a>\r\n<script>\r\nvar title = \"Platform Pygame\";\r\n\t\tvar links = [\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-animation-of-a-sprite-v-1-3\/\",\"Animation 1.3\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-sprite-animation-v-2-better-coding-test-it-checking-fps-on-the-screen\/\",\"Animation 1.2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-how-to-display-the-frame-rate-fps-on-the-screen\/\",\"Display Frame rate\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-sprite-animation-update\/\",\"Animation 1.1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platformer-1\/\",\"Pygame Platform Game 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-platform-game-2\/\",\"Pygame Platform 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-3-recap-cheatsheet\/\",\"Pygame PLatform 3 - recap and some Cheat Sheet\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-4-background-and-stuffs\/\",\"Pygame Platform 4 - Background & organizing code\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platform-game-5-sounds-and-mixer\/\",\"Pygame Platform 5 - Sounds\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/platform-game-in-detail-part-1\/\",\"Game in detail part 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/map-maker-1-2\/\", \"Map maker 1.2\"]\r\n\t\t];\r\n\t\t<\/script>\r\n<script>\r\n\t\r\nif (typeof next2 != \"undefined\"){let next2 = 0;}\r\n\t\r\nnext2 = 0;\r\n\thtml = \"\";\/\/<b style='color:coral;font-size:1.2em'>Other posts about \" + title + \"<\/b><br>\";\r\nfor (address of links) \r\n{\r\n\r\n\tif (next2 == 1){\r\n\t\thtml += \"<div style='background:coral'>\";\r\n\t\thtml += \"Next link => <a href='\" + address[0] + \"'>\" + address[1] + \"<\/a>\";\r\n\t\thtml += \"<\/div><br>\";\r\n\t\tnext2 = 0;\r\n\t}\r\n\tif (address[0] == document.URL) {\r\n\t\tnext2 = 1;\r\n\t}\r\n}\r\n\r\nif (typeof next != \"undefined\") {let next = 0;}\r\nif (typeof addressStart != \"undefined\") {let addressStart = \"\";}\r\nnext = 0;\r\naddressStart = \"<a href='\";\r\nfor (address of links) {\r\n\tif (next == 1){\r\n\t\thtml += \">>>\" + addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t\tnext = 0;\r\n\t}\r\n\telse if (addressStart + address[0] != document.URL)\r\n\t{\r\n\t\thtml += addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tnext = 1;\r\n\t\tnext_address = address[0]\r\n\t\tnext_title = address[1]\r\n\t\thtml += \"<span style='color:gray'>\" + address[1] + \"<\/span><br>\";\r\n\t}\r\n\r\n}\r\n\r\n\thtml += `<span style=\"font-size:8px\">Powered by <a href=\"https:\/\/pythonprogramming.altervista.org\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2673\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png\" alt=\"\" width=\"70\" height=\"25\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png 156w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2-150x56.png 150w\" sizes=\"auto, (max-width: 70px) 100vw, 70px\" \/>pythonprogramming.altervista.org<\/a><\/span>`\r\n\thtml = \"<div style='background:yellow'>\" + html + \"<\/div>\";\r\n\tdocument.write(html)\r\n<\/script>\r\n\r\n<h3>Other Pygame's posts<\/h3>\r\n\r\n<script>\r\nvar title = \"Pygame's Posts\"\r\nvar links = [\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-platformer-1\/\",\"Platform game 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/make-a-platform-game-with-pygame-dafluffypotato\/\",\"DaFluffyPotato Platform Tutorials\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-and-classic-arcade-games-pong\/\",\"Pong Game Full\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/python-draws-in-colors-app-to-draw-with-pygame\/\",\"PyGameGIF 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-draw-app-with-animation\/\",\"PyGameGIF 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pydraw-2-0-app-to-draw-gif\/\",\"PyDraw 2.0\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-drawing-2\/\",\"Draw with Pygame\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/animation-with-pygame\",\"Sprite animation 1\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/animation-on-pygame-2-free-characters-and-more-actions\/\",\"Sprite animation 2\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/starting-with-pygame\/\",\"Starting movements with Pygame\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-3-move-sprite\/\", \"Move a Sprite\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-4-fonts\/\",\"Text and Fonts\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-animate-a-sprite\/\", \"Animate a sprite\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pygame-and-mouse-events\/\",\"Mouse events\"],\r\n[\"https:\/\/pythonprogramming.altervista.org\/pgp-aka-pygamepresentation-project\/\",\"Pygame presentation\"],\r\n\t[\"https:\/\/pythonprogramming.altervista.org\/moving-the-player-in-pygame-with-key-get_pressed\/\",\"How to use key.get_pressed()\"]\r\n]\r\n<\/script>\r\n\r\n\r\n<script>\r\n\t\r\nif (typeof next2 != \"undefined\"){let next2 = 0;}\r\n\t\r\nnext2 = 0;\r\n\thtml = \"\";\/\/<b style='color:coral;font-size:1.2em'>Other posts about \" + title + \"<\/b><br>\";\r\nfor (address of links) \r\n{\r\n\r\n\tif (next2 == 1){\r\n\t\thtml += \"<div style='background:coral'>\";\r\n\t\thtml += \"Next link => <a href='\" + address[0] + \"'>\" + address[1] + \"<\/a>\";\r\n\t\thtml += \"<\/div><br>\";\r\n\t\tnext2 = 0;\r\n\t}\r\n\tif (address[0] == document.URL) {\r\n\t\tnext2 = 1;\r\n\t}\r\n}\r\n\r\nif (typeof next != \"undefined\") {let next = 0;}\r\nif (typeof addressStart != \"undefined\") {let addressStart = \"\";}\r\nnext = 0;\r\naddressStart = \"<a href='\";\r\nfor (address of links) {\r\n\tif (next == 1){\r\n\t\thtml += \">>>\" + addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t\tnext = 0;\r\n\t}\r\n\telse if (addressStart + address[0] != document.URL)\r\n\t{\r\n\t\thtml += addressStart + address[0] + \"'>\" + address[1] + \"<\/a><br>\";\r\n\t}\r\n\telse\r\n\t{\r\n\t\tnext = 1;\r\n\t\tnext_address = address[0]\r\n\t\tnext_title = address[1]\r\n\t\thtml += \"<span style='color:gray'>\" + address[1] + \"<\/span><br>\";\r\n\t}\r\n\r\n}\r\n\r\n\thtml += `<span style=\"font-size:8px\">Powered by <a href=\"https:\/\/pythonprogramming.altervista.org\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2673\" src=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png\" alt=\"\" width=\"70\" height=\"25\" srcset=\"https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2.png 156w, https:\/\/pythonprogramming.altervista.org\/wp-content\/uploads\/2019\/06\/altervista2-150x56.png 150w\" sizes=\"auto, (max-width: 70px) 100vw, 70px\" \/>pythonprogramming.altervista.org<\/a><\/span>`\r\n\thtml = \"<div style='background:yellow'>\" + html + \"<\/div>\";\r\n\tdocument.write(html)\r\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"Let&#8217;s see how can we solve a problem automatically thanks to python getting the data from a text and making also the computer \n<a class=\"moretag\" href=\"https:\/\/pythonprogramming.altervista.org\/how-to-solve-problems-with-python-and-regex\/\"> [...]<\/a>","protected":false},"author":1,"featured_media":9426,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[1,635],"tags":[989,629,4],"class_list":["post-9419","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-examples","category-exercises","tag-break-even-point","tag-exercise","tag-python"],"avopt_banners_inside_post":true,"avopt_banners_on_page":true,"av_copy_from":"","av_sharing_message":"","av_sharing_allowed":true,"av_sharing_on":{"fb":[],"tw":[]},"av_allow_affiliate_banner":false,"av_allow_affiliate_multi_banner":false,"av_show_affiliation_buy_button":false,"av_post_rating":true,"av_have_post_rating_value":false,"av_is_artificial_intelligence_content":false,"_links":{"self":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/9419","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/comments?post=9419"}],"version-history":[{"count":4,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/9419\/revisions"}],"predecessor-version":[{"id":9427,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/posts\/9419\/revisions\/9427"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media\/9426"}],"wp:attachment":[{"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/media?parent=9419"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/categories?post=9419"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pythonprogramming.altervista.org\/wp-json\/wp\/v2\/tags?post=9419"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}