{"id":5763,"date":"2024-08-29T05:08:46","date_gmt":"2024-08-29T05:08:46","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/tp2-exercices-pratiques-sur-les-fonctions-python\/"},"modified":"2024-08-29T05:08:50","modified_gmt":"2024-08-29T05:08:50","slug":"tp2-exercices-pratiques-sur-les-fonctions-python","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/tp2-exercices-pratiques-sur-les-fonctions-python\/","title":{"rendered":"3.4 TP2 : Exercices Pratiques sur les Fonctions Python"},"content":{"rendered":"\u00ab\u00a0`html\n\n<p><strong>3.4 TP2 : Exercices Pratiques sur les Fonctions Python<\/strong> sont essentiels pour renforcer vos comp\u00e9tences en programmation Python. Ma\u00eetriser les fonctions vous permet de structurer votre code, de g\u00e9rer sa r\u00e9utilisabilit\u00e9 et de le tester plus efficacement. Plongeons dans ce tutoriel pour d\u00e9couvrir des exercices pratiques et pertinents sur les fonctions en Python, con\u00e7us pour vous aider \u00e0 perfectionner vos connaissances.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction aux <strong>Fonctions en Python<\/strong><\/h2>\n\n\n\n<div id=\"videoContainer\" style=\"position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;\">\n  <iframe src=\"https:\/\/player.vimeo.com\/video\/583341731?dnt=1&#038;fullscreen=0&#038;pip=0\" loading=\"lazy\" loading=\"lazy\" style=\"position: absolute; top: 0; left: 0; width: 100%; height: 100%;\" frameborder=\"0\" allow=\"autoplay\" allowfullscreen id=\"vimeoPlayer\"><\/iframe>\n  \n  <!-- Popup Desktop -->\n  <div id=\"popupContainer\" class=\"desktop-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 90%; max-width: 400px; padding: 20px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <h2 style=\"color: #333; font-size: 1.5em; margin: 10px 0;\" id=\"profitez-de-loffre-spciale-\">Profitez de l\u2019offre sp\u00e9ciale !<\/h2>\n    <p style=\"color: #e74c3c; font-size: 1.2em; margin: 10px 0;\">Obtenez notre cours pour seulement <strong id=\"price\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: block; padding: 10px 20px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 1em; margin: 20px auto;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 10px 20px; font-size: 1em;\">Fermer<\/button>\n  <\/div>\n\n  <!-- Popup Mobile -->\n  <div id=\"popupContainerMobile\" class=\"mobile-popup\" style=\"display: none; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 80%; max-width: 300px; padding: 15px; border-radius: 10px; text-align: center; box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1); background-color: rgba(255, 255, 255, 0.95); box-sizing: border-box;\">\n    <p style=\"color: #e74c3c; font-size: 1em; margin: 5px 0;\">Cours sp\u00e9cial \u00e0 <strong id=\"priceMobile\">29.5\u20ac<\/strong> au lieu de <del>59\u20ac<\/del> !<\/p>\n    <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" style=\"display: inline-block; padding: 8px 15px; background-color: #701CF5; color: #fff; text-decoration: none; border-radius: 5px; font-weight: bold; font-size: 0.9em;\" rel=\"noopener\">Commencer maintenant<\/a>\n    <button onclick=\"closePopup()\" style=\"padding: 5px 10px; font-size: 0.9em;\">Fermer<\/button>\n  <\/div>\n<\/div>\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var iframe = document.getElementById('vimeoPlayer');\n    var player = new Vimeo.Player(iframe);\n    var isPopupDisplayed = false;\n\n    player.on('play', function() {\n        if (!isPopupDisplayed) {\n            player.on('timeupdate', function(data) {\n                if (data.seconds >= 120 && !isPopupDisplayed) { \/\/ 120 seconds = 2 minutes\n                    \/\/ Pause the video and display the popup\n                    player.pause().then(function() {\n                        if (window.innerWidth > 768) {\n                            document.querySelector('.desktop-popup').style.display = 'block';\n                        } else {\n                            document.querySelector('.mobile-popup').style.display = 'block';\n                        }\n                        fetchPriceAndUpdatePopup();\n                        isPopupDisplayed = true;\n                    });\n                }\n            });\n        }\n    });\n\n    function fetchPriceAndUpdatePopup() {\n        fetch('https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144')\n            .then(response => response.text())\n            .then(html => {\n                var parser = new DOMParser();\n                var fetchedDoc = parser.parseFromString(html, 'text\/html');\n                var priceElement = fetchedDoc.querySelector('.ammount .fw-500');\n                var originalPriceElement = fetchedDoc.querySelector('.ammount del');\n                var price = priceElement ? priceElement.textContent.trim() : '29.5\u20ac';\n                var originalPrice = originalPriceElement ? originalPriceElement.textContent.trim() : '59\u20ac';\n\n                document.getElementById('price').textContent = price;\n                document.getElementById('priceMobile').textContent = price;\n                document.querySelector('.desktop-popup del').textContent = originalPrice;\n                document.querySelector('.mobile-popup del').textContent = originalPrice;\n            })\n            .catch(error => console.error('Error fetching the price:', error));\n    }\n\n    function closePopup() {\n        document.querySelector('.desktop-popup').style.display = 'none';\n        document.querySelector('.mobile-popup').style.display = 'none';\n        player.play(); \/\/ Allows resuming the video only after closing the popup\n    }\n});\n<\/script>\n\n\n\n<p>Les fonctions en Python permettent d&rsquo;isoler des blocs de code r\u00e9utilisables. Elles acceptent des arguments, peuvent renvoyer des valeurs et rendent le code plus modulaire. Comprendre les fonctions en profondeur est une comp\u00e9tence fondamentale pour tout d\u00e9veloppeur Python. Commencez par les bases: la d\u00e9finition de fonctions simples, l&rsquo;utilisation de param\u00e8tres par d\u00e9faut, les retours multiples, et explorez ensuite les niveaux avanc\u00e9s comme les fonctions lambda et les g\u00e9n\u00e9rateurs. Pour une introduction d\u00e9taill\u00e9e aux <a href=\"https:\/\/wikiform.fr\/codespace\/introduction-aux-fonctions-en-python\" target=\"_blank\" rel=\"noopener\">fonctions en Python<\/a>, consultez notre guide complet.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Exercice 1 : D\u00e9finir des Fonctions Simples<\/h3>\n\n\n\n<p>Commen\u00e7ons par d\u00e9finir une fonction simple qui calcule la somme de deux nombres et renvoie le r\u00e9sultat. Voici un exemple de base pour vous aider \u00e0 d\u00e9marrer :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>def addition(a, b):\n    return a + b\n\n# Ex\u00e9cuter la fonction\nresultat = addition(5, 3)\nprint(\"La somme de 5 et 3 est :\", resultat)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exercice 2 : Fonctions avec Param\u00e8tres Optionnels<\/h3>\n\n\n\n<p>Parfois, vous voudrez fournir des valeurs par d\u00e9faut \u00e0 certains param\u00e8tres d&rsquo;une fonction. Cela permet d&rsquo;appeler la fonction avec moins d&rsquo;arguments si certaines valeurs par d\u00e9faut peuvent \u00eatre utilis\u00e9es. Voici comment :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>def salutation(nom, message=\"Bonjour\"):\n    return f\"{message}, {nom}!\"\n\n# Appelons la fonction avec et sans l'argument optionnel\nprint(salutation(\"Alice\"))\nprint(salutation(\"Bob\", \"Salut\"))\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exercice 3 : Valeurs de Retour Multiples<\/h3>\n\n\n\n<p>Il peut \u00eatre utile de retourner plusieurs valeurs d&rsquo;une fonction. Python rend cela aussi simple que de retourner un tuple. Voyons un exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>def operations(a, b):\n    return a + b, a - b, a * b, a \/ b\n\n# R\u00e9cup\u00e9rer les r\u00e9sultats\naddition, soustraction, multiplication, division = operations(10, 2)\nprint(\"Addition:\", addition)\nprint(\"Soustraction:\", soustraction)\nprint(\"Multiplication:\", multiplication)\nprint(\"Division:\", division)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exercice 4 : Fonctions Lambda<\/h3>\n\n\n\n<p>Les fonctions lambda sont des fonctions anonymes en Python. Elles sont utiles pour les op\u00e9rations rapides qui ne n\u00e9cessitent pas de nom de fonction officiel. Voici un exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>carre = lambda x: x ** 2\n\n# Utilisation de la fonction lambda\nprint(carre(5))\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exercice 5 : Les G\u00e9n\u00e9rateurs<\/h3>\n\n\n\n<p>Un g\u00e9n\u00e9rateur en Python est un type sp\u00e9cial de fonction qui utilise <code>yield<\/code> au lieu de <code>return<\/code>. Il permet de retourner des valeurs s\u00e9quentiellement, ce qui est id\u00e9al pour parcourir des s\u00e9quences larges sans les charger enti\u00e8rement en m\u00e9moire. Voici un exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>def compte_a_rebours(n):\n    while n > 0:\n        yield n\n        n -= 1\n\n# Utilisation du g\u00e9n\u00e9rateur\nfor nombre in compte_a_rebours(5):\n    print(nombre)\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">D\u00e9fis Additionnels pour Ma\u00eetriser les Fonctions Python<\/h3>\n\n\n\n<p>Prenons un peu de hauteur avec des exercices plus complexes qui combinent plusieurs concepts de fonctions Python. Voici quelques exemples :<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Manipulation Avanc\u00e9e des Listes<\/h4>\n\n\n\n<p>Ecrivez une fonction qui re\u00e7oit une liste de nombres et renvoie une nouvelle liste contenant uniquement les carr\u00e9s des nombres pairs :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>def carres_pairs(liste):\n    return [x**2 for x in liste if x % 2 == 0]\n\n# Exemple d'utilisation\nprint(carres_pairs([1, 2, 3, 4, 5, 6]))\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Calculs avec une Liste de Dictionnaires<\/h4>\n\n\n\n<p>Cr\u00e9ez une fonction qui calcule la moyenne des \u00e2ges des \u00e9tudiants \u00e0 partir d&rsquo;une liste de dictionnaires :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>def moyenne_age(etudiants):\n    total_age = sum(etudiant['age'] for etudiant in etudiants)\n    return total_age \/ len(etudiants)\n\n# Exemple d'utilisation\netudiants = [\n    {\"nom\": \"Alice\", \"age\": 24},\n    {\"nom\": \"Bob\", \"age\": 22},\n    {\"nom\": \"Charlie\", \"age\": 23}\n]\nprint(\"Moyenne d'\u00e2ge :\", moyenne_age(etudiants))\n<\/code><\/pre>\n\n\n\n<p>Explorez davantage les capacit\u00e9s des fonctions en Python en cr\u00e9ant vos propres exercices et en essayant de r\u00e9soudre des d\u00e9fis de programmation sur des plateformes comme <a href=\"https:\/\/www.hackerrank.com\/domains\/tutorials\/10-days-of-python\" target=\"_blank\" rel=\"noopener\">HackerRank<\/a> et <a href=\"https:\/\/leetcode.com\/problemset\/all\/\" target=\"_blank\" rel=\"noopener\">LeetCode<\/a>. Ces sites proposent des probl\u00e8mes vari\u00e9s et stimulants qui peuvent aider \u00e0 renforcer vos comp\u00e9tences.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>Les <strong>exercices pratiques sur les fonctions Python<\/strong> sont une excellente mani\u00e8re de consolider vos connaissances et d&rsquo;am\u00e9liorer votre ma\u00eetrise du langage. En pratiquant r\u00e9guli\u00e8rement et en explorant des concepts avanc\u00e9s, vous devenez un(e) d\u00e9veloppeur(se) Python plus efficace et polyvalent(e). Continuez \u00e0 vous exercer avec ces notions et n&rsquo;h\u00e9sitez pas \u00e0 explorer les ressources suppl\u00e9mentaires comme <a href=\"https:\/\/docs.python.org\/fr\/3\/tutorial\/index.html\" target=\"_blank\" rel=\"noopener\">la documentation officielle de Python<\/a> et <a href=\"https:\/\/realpython.com\/\" target=\"_blank\" rel=\"noopener\">les tutoriels de Real Python<\/a> pour approfondir encore plus vos connaissances.<\/p>\n\n\n\n<a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" src=\"https:\/\/wikiform.fr\/codespace\/wp-content\/uploads\/2024\/07\/learnify-formation-PYTHON-offre-50.gif\" loading=\"lazy\" alt=\"Learnify Formation Python Offre 50%\" title=\"\"><\/a>\n\n\n<!-- Ajout de liens internes pertinents -->\n<!-- Les URL internes doivent \u00eatre format\u00e9es correctement -->\n\n<p>Pour une meilleure compr\u00e9hension de la programmation en Python, vous pouvez consulter nos tutoriels complets sur :\n    <a href=\"https:\/\/wikiform.fr\/codespace\/premier-programme-python-hello-world\" target=\"_blank\" rel=\"noopener\">Premier Programme Python : Hello World<\/a>,\n    <a href=\"https:\/\/wikiform.fr\/codespace\/comprendre-les-variables-en-python\" target=\"_blank\" rel=\"noopener\">Comprendre les Variables en Python<\/a>,\n    <a href=\"https:\/\/wikiform.fr\/codespace\/structure-conditionnelle-if-else-en-python\" target=\"_blank\" rel=\"noopener\">Structure Conditionnelle If-Else en Python<\/a>,\n    <a href=\"https:\/\/wikiform.fr\/codespace\/boucle-while-en-python-astuces-et-exemples\" target=\"_blank\" rel=\"noopener\">Boucle While en Python : Astuces et Exemples<\/a>,\n    <a href=\"https:\/\/wikiform.fr\/codespace\/gerer-erreurs-et-exceptions-en-python\" target=\"_blank\" rel=\"noopener\">G\u00e9rer les Erreurs et Exceptions en Python<\/a>.\n<\/p>\n\n\n<script src=\"https:\/\/player.vimeo.com\/api\/player.js\"><\/script>\n<script>\ndocument.addEventListener('DOMContentLoaded', function() {\n    var iframe = document.getElementById('vimeoPlayer');\n    var player = new Vimeo.Player(iframe);\n    var isPopupDisplayed = false;\n\n    player.on('play', function() {\n        if (!isPopupDisplayed) {\n            player.on('timeupdate', function(data) {\n                if (data.seconds >= 120 && !isPopupDisplayed) { \/\/ 120 seconds = 2 minutes\n                    \/\/ Pause the video and display the popup\n                    player.pause().then(function() {\n                        if (window.innerWidth > 768) {\n                            document.querySelector('.desktop-popup').style.display = 'block';\n                        } else {\n                            document.querySelector('.mobile-popup').style.display = 'block';\n                        }\n                        fetchPriceAndUpdatePopup();\n                        isPopupDisplayed = true;\n                    });\n                }\n            });\n        }\n    });\n\n    function fetchPriceAndUpdatePopup() {\n        fetch('https:\/\/wikiform.fr\/application\/learnify\/home\/course\/devenir-un-d%C3%A9veloppeur-python\/144')\n            .then(response => response.text())\n            .then(html => {\n                var parser = new DOMParser();\n                var fetchedDoc = parser.parseFromString(html, 'text\/html');\n                var priceElement = fetchedDoc.querySelector('.ammount .fw-500');\n                var originalPriceElement = fetchedDoc.querySelector('.ammount del');\n                var price = priceElement ? priceElement.textContent.trim() : '29.5\u20ac';\n                var originalPrice = originalPriceElement ? originalPriceElement.textContent.trim() : '59\u20ac';\n\n                document.getElementById('price').textContent = price;\n                document.getElementById('priceMobile').textContent = price;\n                document.querySelector('.desktop-popup del').textContent = originalPrice;\n                document.querySelector('.mobile-popup del').textContent = originalPrice;\n            })\n            .catch(error => console.error('Error fetching the price:', error));\n    }\n\n    function closePopup() {\n        document.querySelector('.desktop-popup').style.display = 'none';\n        document.querySelector('.mobile-popup').","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0`html 3.4 TP2 : Exercices Pratiques sur les Fonctions Python sont essentiels pour renforcer vos comp\u00e9tences en programmation Python. Ma\u00eetriser les fonctions vous permet de&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2965,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5763","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-python","tag-tutoriels"],"acf":[],"_titre_de_la_formation":null,"_description_":null,"_objectifs_pedagogiques":null,"_programme_":null,"_url_de_limage":null,"_materiel_necessaire":null,"_modalites_devaluation_des_acquis":null,"_moyens_pedagogiques_et_techniques":null,"_accessibilite_":null,"_formateur_":null,"menu_order":0,"_links":{"self":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5763","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/comments?post=5763"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5763\/revisions"}],"predecessor-version":[{"id":5764,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5763\/revisions\/5764"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2965"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5763"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5763"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5763"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}