{"id":5743,"date":"2024-08-29T04:28:33","date_gmt":"2024-08-29T04:28:33","guid":{"rendered":"https:\/\/wikiform.fr\/codespace\/boucle-while-en-python-astuces-et-exemples\/"},"modified":"2024-08-29T04:28:37","modified_gmt":"2024-08-29T04:28:37","slug":"boucle-while-en-python-astuces-et-exemples","status":"publish","type":"post","link":"https:\/\/wikiform.fr\/codespace\/boucle-while-en-python-astuces-et-exemples\/","title":{"rendered":"2.11 Boucle while en Python : Astuces et Exemples"},"content":{"rendered":"\u00ab\u00a0`html\n\n<p><strong>Les boucles while en Python<\/strong> sont essentielles pour la programmation it\u00e9rative et permettent de r\u00e9p\u00e9ter l&rsquo;ex\u00e9cution de blocs de code tant qu&rsquo;une condition sp\u00e9cifi\u00e9e reste vraie. Bien comprendre et utiliser la boucle <strong>while<\/strong> peut grandement am\u00e9liorer votre capacit\u00e9 \u00e0 \u00e9crire des scripts efficaces et dynamiques. Apprenons les astuces et voyons des exemples concrets de code Python pour ma\u00eetriser la boucle <strong>while<\/strong>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction \u00e0 la <strong>Boucle while 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\/583311988?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>La boucle <code>while<\/code> en Python permet de r\u00e9p\u00e9ter l&rsquo;ex\u00e9cution d&rsquo;un bloc de code tant qu&rsquo;une condition donn\u00e9e est vraie. Cette structure de contr\u00f4le est particuli\u00e8rement utile pour les situations o\u00f9 le nombre d&rsquo;it\u00e9rations ne peut pas \u00eatre d\u00e9termin\u00e9 \u00e0 l&rsquo;avance.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Syntaxe de Base de la Boucle while<\/h3>\n\n\n\n<p>Voici la syntaxe g\u00e9n\u00e9rale de la boucle <code>while<\/code> en Python :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>while condition:\n    # Bloc de code \u00e0 ex\u00e9cuter tant que la condition est vraie\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple Simple de Boucle while<\/h3>\n\n\n\n<p>Consid\u00e9rons un exemple simple o\u00f9 nous utilisons une boucle <code>while<\/code> pour afficher les num\u00e9ros de 1 \u00e0 5 :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>i = 1\nwhile i <= 5:\n    print(i)\n    i += 1\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Utiliser les Op\u00e9rateurs de Comparaison et Logiques<\/h3>\n\n\n\n<p>Les op\u00e9rateurs de comparaison (comme <code>==<\/code>, <code>!=<\/code>, <code>&lt;<\/code>, <code>&gt;<\/code>, <code>&lt;=<\/code>, <code>&gt;=<\/code>) et les op\u00e9rateurs logiques (comme <code>and<\/code>, <code>or<\/code>, <code>not<\/code>) peuvent \u00eatre utilis\u00e9s pour cr\u00e9er des conditions plus complexes dans une boucle <code>while<\/code>. Voyons un exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>x = 0\ny = 10\nwhile x < 5 and y > 5:\n    print(f\"x: {x}, y: {y}\")\n    x += 1\n    y -= 1\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Attention aux Boucles Infinies<\/h3>\n\n\n\n<p>Il est crucial de s'assurer que la condition de la boucle <code>while<\/code> deviendra fausse \u00e0 un moment donn\u00e9 pour \u00e9viter les boucles infinies, ce qui peut bloquer ou faire planter votre programme. Voici un exemple d'une boucle infinie accidentelle :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>i = 0\nwhile i <= 5:\n    print(i)\n    # Oups, pas d'incr\u00e9mentation de i ici\n<\/code><\/pre>\n\n\n\n<p>Pour \u00e9viter cela, assurez-vous que la variable contr\u00f4lante (dans ce cas, <code>i<\/code>) est correctement mise \u00e0 jour \u00e0 chaque it\u00e9ration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L'instruction break et continue<\/h3>\n\n\n\n<p>Les instructions <code>break<\/code> et <code>continue<\/code> offrent plus de contr\u00f4le sur la boucle <code>while<\/code> :<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Utilisation de <code>break<\/code><\/h4>\n\n\n\n<p>L'instruction <code>break<\/code> permet de sortir imm\u00e9diatement de la boucle, quelle que soit la condition :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>i = 0\nwhile i < 10:\n    if i == 5:\n        break\n    print(i)\n    i += 1\n# Sortie de la boucle quand i est 5\n<\/code><\/pre>\n\n\n\n<h4 class=\"wp-block-heading\">Utilisation de <code>continue<\/code><\/h4>\n\n\n\n<p>L'instruction <code>continue<\/code> permet de sauter le reste du code \u00e0 l'int\u00e9rieur de la boucle pour cette it\u00e9ration et retourne au d\u00e9but de la boucle :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>i = 0\nwhile i < 10:\n    i += 1\n    if i == 5:\n        continue\n    print(i)\n# 5 sera ignor\u00e9 dans l'impression\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Boucles while avec else<\/h3>\n\n\n\n<p>En Python, les boucles <code>while<\/code> peuvent \u00eatre combin\u00e9es avec une clause <code>else<\/code>, qui s'ex\u00e9cute lorsque la condition devient fausse (\u00e0 moins qu'une <code>break<\/code> soit ex\u00e9cut\u00e9e). Voici un exemple :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>i = 0\nwhile i < 5:\n    print(i)\n    i += 1\nelse:\n    print(\"La boucle while est termin\u00e9e.\")\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Exemple Avanc\u00e9 : Simulation d'un Nombre Secret<\/h3>\n\n\n\n<p>Voyons un exemple avanc\u00e9 o\u00f9 nous utilisons une boucle <code>while<\/code> pour cr\u00e9er un jeu simple de devinette de nombre secret :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>import random\n\nsecret_number = random.randint(1, 100)\nguess = None\n\nprint(\"Devinez le nombre secret entre 1 et 100:\")\n\nwhile guess != secret_number:\n    guess = int(input(\"Votre devinette: \"))\n    if guess < secret_number:\n        print(\"Le nombre secret est plus grand.\")\n    elif guess > secret_number:\n        print(\"Le nombre secret est plus petit.\")\n\nprint(f\"F\u00e9licitations! Le nombre secret \u00e9tait {secret_number}.\")\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Utilisation de Boucles while avec Structures de Donn\u00e9es<\/h3>\n\n\n\n<p>Les boucles <code>while<\/code> peuvent \u00e9galement \u00eatre utilis\u00e9es pour parcourir et manipuler des structures de donn\u00e9es comme les listes, les dictionnaires, et les ensembles. Examinons un exemple avec une liste :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>my_list = [1, 2, 3, 4, 5, 6]\nindex = 0\n\nwhile index < len(my_list):\n    print(my_list[index])\n    index += 1\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\">Boucle while pour Validation d'Entr\u00e9e Utilisateur<\/h3>\n\n\n\n<p>Les boucles <code>while<\/code> peuvent \u00e9galement \u00eatre utilis\u00e9es pour valider les entr\u00e9es utilisateur, garantissant que l'utilisateur fournit une entr\u00e9e correcte avant de continuer :<\/p>\n\n\n\n<pre class=\"wp-block-code lang-python\"><code>while True:\n    user_input = input(\"Entrez un nombre positif: \")\n    if user_input.isdigit() et int(user_input) > 0:\n        print(f\"Merci! Vous avez entr\u00e9 {user_input}\")\n        break\n    else:\n        print(\"Entr\u00e9e non valide, veuillez r\u00e9essayer.\")\n<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusion<\/h2>\n\n\n\n<p>La <strong>boucle while en Python<\/strong> est un outil puissant et flexible pour impl\u00e9menter des r\u00e9p\u00e9titions contr\u00f4l\u00e9es par des conditions. En utilisant des astuces et des exemples appropri\u00e9s, vous pouvez maximiser l'efficacit\u00e9 et la lisibilit\u00e9 de votre code. Continuez \u00e0 explorer les fonctionnalit\u00e9s de la boucle while pour ma\u00eetriser davantage de concepts de programmation avanc\u00e9s. Pour plus de tutoriels sur Python, consultez notre article sur <a href=\"https:\/\/wikiform.fr\/application\/learnify\/home\/course\/python-interm\u00e9diaire\/150\">les fonctionnalit\u00e9s interm\u00e9diaires de Python<\/a>. Pour apprendre \u00e0 travailler avec d'autres structures de contr\u00f4le en Python, lisez notre <a href=\"https:\/\/wikiform.fr\/codespace\/contrats-de-flux-python-guide-compl\u00e8te\">tutoriel d\u00e9taill\u00e9<\/a>. D\u00e9couvrez aussi comment <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-mac-2024-guide-complet\">installer Python sur Mac<\/a>, <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-windows-facilement\">installer Python sur Windows<\/a>, et <a href=\"https:\/\/wikiform.fr\/codespace\/installer-python-sur-linux-ubuntu-etape-par-etape\">installer Python sur Linux Ubuntu<\/a>. Apprenez \u00e0 maitriser la <a href=\"https:\/\/wikiform.fr\/codespace\/structure-conditionnelle-if-else-en-python\">structure conditionnelle if-else en Python<\/a> pour am\u00e9liorer encore plus vos scripts.<\/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```","protected":false},"excerpt":{"rendered":"<p>\u00ab\u00a0`html Les boucles while en Python sont essentielles pour la programmation it\u00e9rative et permettent de r\u00e9p\u00e9ter l&rsquo;ex\u00e9cution de blocs de code tant qu&rsquo;une condition sp\u00e9cifi\u00e9e&#8230;<\/p>\n","protected":false},"author":4,"featured_media":2899,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[24],"tags":[18],"class_list":["post-5743","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\/5743","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=5743"}],"version-history":[{"count":1,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5743\/revisions"}],"predecessor-version":[{"id":5744,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/posts\/5743\/revisions\/5744"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media\/2899"}],"wp:attachment":[{"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/media?parent=5743"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/categories?post=5743"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wikiform.fr\/codespace\/wp-json\/wp\/v2\/tags?post=5743"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}