{"id":746,"date":"2022-06-15T20:44:22","date_gmt":"2022-06-15T23:44:22","guid":{"rendered":"http:\/\/lucianodev.com.br\/blog\/?p=746"},"modified":"2022-07-19T20:28:11","modified_gmt":"2022-07-19T23:28:11","slug":"estruturas-de-repeticao-em-python","status":"publish","type":"post","link":"https:\/\/lucianodev.com.br\/blog\/estruturas-de-repeticao-em-python\/","title":{"rendered":"Estruturas de Repeti\u00e7\u00e3o em Python"},"content":{"rendered":"<p><script async src=\"https:\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-4648498281437791\" crossorigin=\"anonymous\"><\/script><br \/>\n<ins class=\"adsbygoogle\" style=\"display: block; text-align: center;\" data-ad-layout=\"in-article\" data-ad-format=\"fluid\" data-ad-client=\"ca-pub-4648498281437791\" data-ad-slot=\"6352579729\"><\/ins><br \/>\n<script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<p>Fala a\u00ed pessoal.<\/p>\n<p>Depois de um bom tempo \u201csumido\u201d aqui do blog, vamos dar continuidade aqui com as postagens de programa\u00e7\u00e3o da linguagem Python, falando agora sobre ESTRUTURAS DE REPETI\u00c7\u00c3O (ou \u201cLOOPS\u201d DE REPETI\u00c7\u00c3O).<\/p>\n<p><strong>OBS.:<\/strong> Se voc\u00ea que est\u00e1 lendo este post ainda n\u00e3o sabe nada sobre Python (simplesmente caiu aqui de \u201cpara-quedas\u201d), recomendo a leitura inicial sobre o assunto, clicando no link abaixo:<\/p>\n<blockquote class=\"wp-embedded-content\" data-secret=\"Qi6LhtXk5S\"><p><a href=\"https:\/\/lucianodev.com.br\/blog\/introducao-a-linguagem-python-2022\/\">Introdu\u00e7\u00e3o \u00e0 Linguagem Python (2022)<\/a><\/p><\/blockquote>\n<p><iframe loading=\"lazy\" class=\"wp-embedded-content\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;Introdu\u00e7\u00e3o \u00e0 Linguagem Python (2022)&#8221; &#8212; LucianoDEV (Blog)\" src=\"https:\/\/lucianodev.com.br\/blog\/introducao-a-linguagem-python-2022\/embed\/#?secret=LOx6KDk2Sa#?secret=Qi6LhtXk5S\" data-secret=\"Qi6LhtXk5S\" width=\"600\" height=\"338\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\"><\/iframe><\/p>\n<h2><strong>O que s\u00e3o loops (estruturas) de repeti\u00e7\u00e3o?<\/strong><\/h2>\n<p>Um \u201cloop\u201d de repeti\u00e7\u00e3o consiste em uma estrutura (bloco) de comandos, que s\u00e3o executados repetidamente, v\u00e1rias vezes, enquanto uma condi\u00e7\u00e3o presente na estrutura estiver sendo atendida (at\u00e9 o momento em que essa condi\u00e7\u00e3o n\u00e3o atenda mais, encerrando assim o loop). Vamos conhecer aqui algumas estruturas de repeti\u00e7\u00e3o da linguagem Python.<\/p>\n<h3><strong>Estrutura de repeti\u00e7\u00e3o WHILE<\/strong><\/h3>\n<p>Uma das estruturas de repeti\u00e7\u00e3o presentes na linguagem Python \u00e9 o <strong><em>while<\/em><\/strong>, onde basicamente temos um bloco de comandos que repete a sua execu\u00e7\u00e3o enquanto a condi\u00e7\u00e3o for verdadeira. Vejamos a sua sintaxe:<\/p>\n<pre><code class=\"language-python\">while(&lt;condi\u00e7\u00e3o&gt;):\n   &lt;instru\u00e7\u00e3o1&gt;\n   &lt;instru\u00e7\u00e3o 2&gt;\n   &lt;instru\u00e7\u00e3o 3&gt;\n   :<\/code><\/pre>\n<p><strong>Exemplo:<\/strong> Imagine que voc\u00ea precise mostrar na tela n\u00fameros de 1 at\u00e9 5, um abaixo do outro. Se n\u00e3o usarmos o loop ter\u00edamos um programa Python basicamente dessa maneira:<\/p>\n<pre><code class=\"language-python\">\nprint(&quot;1&quot;)\nprint(&quot;2&quot;)\nprint(&quot;3&quot;)\nprint(&quot;4&quot;)\nprint(&quot;5&quot;)<\/code><\/pre>\n<p>Vejamos o resultado no interpretador:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"587\" height=\"224\" class=\"wp-image-748 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted.png\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted.png 587w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-300x114.png 300w\" sizes=\"auto, (max-width: 587px) 100vw, 587px\" \/><\/p>\n<p>Agora imagine que voc\u00ea precise imprimir n\u00fameros de um at\u00e9 100, da forma que fizemos sem loop? Levar\u00edamos uma \u201ceternidade\u201d para escrever (de forma desnecess\u00e1ria).<\/p>\n<p>Agora, olha como ficaria o mesmo programa acima se usarmos o loop <strong><em>while<\/em><\/strong>:<\/p>\n<pre><code class=\"language-python\">x = 1 #Inicia a vari\u00e1vel x com valor 1\nwhile(x &lt;= 5): #Verifica se x &lt;= 5, enquanto verdadeiro, repita\n    print(x) #Imprime o valor atual de x (varia a cada repeti\u00e7\u00e3o)\n    x+=1 #Incrementa o valor atual de x (se 1, passa a ser 2 e assim vai)\n<\/code><\/pre>\n<p>Vejamos agora o resultado:<\/p>\n<figure id=\"attachment_749\" aria-describedby=\"caption-attachment-749\" style=\"width: 673px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-749 size-full\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-1.png\" alt=\"\" width=\"673\" height=\"137\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-1.png 673w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-1-300x61.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><figcaption id=\"caption-attachment-749\" class=\"wp-caption-text\">Veja que o resultado \u00e9 o mesmo do script anterior<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>Vamos ver uma aplica\u00e7\u00e3o pr\u00e1tica do loop <strong><em>while.<\/em><\/strong> Imagine que voc\u00ea precise calcular o fatorial de um n\u00famero qualquer (informado no teclado, atrav\u00e9s do uso da fun\u00e7\u00e3o <strong><em>input<\/em><\/strong>).<\/p>\n<p><strong>OBS.:<\/strong> O fatorial de um n\u00famero consiste em sucessivas multiplica\u00e7\u00f5es de um n\u00famero com os seus anteriores, at\u00e9 o 1. Exemplo o fatorial de 5 (representado por 5!) \u00e9: 5 x 4 x 3 x 2 x 1.<\/p>\n<p>Vamos ver agora um programa em Python que calcula o fatorial de um n\u00famero qualquer, informado via teclado:<\/p>\n<pre><code class=\"language-python\">#Iniciando a vari\u00e1vel &#039;fatorial&#039; com valor 1\n#que ser\u00e1 multiplicada v\u00e1rias vezes dentro do loop\nfatorial = 1\n\n#Iniciando vari\u00e1vel &#039;contador&#039; com valor 1\n#Ser\u00e1 necess\u00e1rio para fazer os c\u00e1lculos\ncontador = 1\n\n#Solicita que o usu\u00e1rio informe um n\u00famero inteiro\n#OBS.: Usamos a fun\u00e7\u00e3o int, pois o input devolve uma string\nnumero = int(input(&quot;Digite um n\u00famero inteiro qualquer: &quot;))\n\n#calcula o fatorial\nwhile (contador &lt;= numero):\n    fatorial *= contador\n    contador+=1\n\n#Apresenta o resultado do fatorial na tela\n\nprint(&quot;O fatorial de &quot;,numero,&quot; \u00e9: &quot;, fatorial)<\/code><\/pre>\n<p>Vejamos o resultado da execu\u00e7\u00e3o do script acima no interpretador:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"199\" class=\"wp-image-751 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-2.png\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-2.png 673w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-2-300x89.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/p>\n<p>[wbcr_html_snippet id=&#8221;772&#8243;]<\/p>\n<p><script>\n     (adsbygoogle = window.adsbygoogle || []).push({});\n<\/script><\/p>\n<h3><strong>Estrutura de repeti\u00e7\u00e3o FOR <\/strong><\/h3>\n<p>Uma das estruturas de repeti\u00e7\u00e3o presentes tamb\u00e9m na linguagem Python \u00e9 o <strong><em>for<\/em><\/strong>, que \u00e9 ideal para processar estruturas como listas, tuplas, strings etc., varrendo cada elemento presente (no caso de string, cada caractere presente). Vejamos sua sintaxe:<\/p>\n<pre><code class=\"language-python\">for &lt;vari\u00e1vel&gt; in &lt;express\u00e3o&gt;\n\t&lt;instru\u00e7\u00e3o 1&gt;\n     &lt;instru\u00e7\u00e3o 2&gt;\n\t:<\/code><\/pre>\n<p>Vejamos uma demonstra\u00e7\u00e3o do uso do <strong><em>for, <\/em><\/strong>para processar uma lista de nomes de alunos, mostrando cada nome em uma linha:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"672\" height=\"231\" class=\"wp-image-753 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-3.png\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-3.png 672w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-3-300x103.png 300w\" sizes=\"auto, (max-width: 672px) 100vw, 672px\" \/><\/p>\n<h3><strong>Combinando os dois loops: while e for<\/strong><\/h3>\n<p>Irei demonstrar aqui a combina\u00e7\u00e3o dos dois loops de repeti\u00e7\u00e3o, para a cria\u00e7\u00e3o de um pequeno programa de cadastro de clientes. Vejamos o c\u00f3digo do programa abaixo:<\/p>\n<pre><code class=\"language-python\">print(&quot;Programa de Cadastro de Cliente&quot;)\n\n#Cria uma lista de cadastros vazia\nlista_clientes = [];\n\n#Inicia vari\u00e1vel de controle &#039;resposta&#039; com &#039;sim&#039;\nresposta = &quot;sim&quot;\n\nwhile(resposta == &quot;sim&quot;):\n  nome_cliente = input(&quot;Digite o nome do cliente: &quot;)\n  telefone_cliente = input(&quot;Digite o telefone do cliente: &quot;)\n  #Adicione os dados lidos em um vetor\n  dados = [nome_cliente, telefone_cliente]\n  #Os dados armazenados acima ser\u00e3o adicionados dentro da lista\n  lista_clientes.append(dados)\n\n  #Pergunta se o usu\u00e1rio quer continuar (lower converte string em minuscula)\n\n  resposta = input(&quot;Continuar ? [SIM\/N\u00c3O]: &quot;).lower()\n\n#Inicia vari\u00e1vel &#039;contador&#039; com &#039;1&#039;\n\ncontador = 1\n\n#Mostra todos os clientes armazenados na lista\n\nprint(&quot;\\nLista de Cadastrados\\n&quot;)\nfor cliente in lista_clientes:\n    #cliente[0] = Armazena o nome do cliente\n    #cliente[1] = Armazena o telefone do cliente\n    print(&quot;Cliente&quot;,contador,&quot;:&quot;, cliente[0], &quot;,&quot;, cliente[1])\n    contador+=1 #Incrementa o contador\n<\/code><\/pre>\n<p>Vejamos a execu\u00e7\u00e3o do programa acima no interpretador:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"242\" class=\"wp-image-756 size-full aligncenter\" src=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-5.png\" srcset=\"https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-5.png 673w, https:\/\/lucianodev.com.br\/blog\/wp-content\/uploads\/2022\/06\/Pasted-5-300x108.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/p>\n<h2>Considera\u00e7\u00f5es finais<\/h2>\n<p>E a\u00ed pessoal, gostaram do post de hoje? Em breve teremos muito mais (Em breve, um E-BOOK gratuito a linguagem Python o assunto com muito mais detalhes e t\u00e9cnicas de programa\u00e7\u00e3o).<\/p>\n<p><strong>Pergunta 1:<\/strong> Gostaria de sugerir algum assunto? Clique no bot\u00e3o abaixo:<\/p>\n<p><a style=\"padding: 10px; background-color: #ff5500; color: #fff; font-weight: bold;\" href=\"#spu-743\">Sugerir assunto<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Fique por dentro das atualiza\u00e7\u00f5es das postagens, seguindo as redes sociais abaixo:<\/p>\n<p><a style=\"padding: 10px; background-color: #ff5500; color: #fff; font-weight: bold;\" href=\"https:\/\/www.instagram.com\/lucianodevoficial\/\" target=\"_blank\" rel=\"noopener\">Instagram: @lucianodevoficial<\/a><\/p>\n<p><a style=\"padding: 10px; background-color: #00aaff; color: #fff; font-weight: bold;\" href=\"https:\/\/fb.com\/lucianodevoficial\/\" target=\"_blank\" rel=\"noopener\">Facebook: @lucianodevoficial<\/a><\/p>\n<p>&nbsp;<\/p>\n<p>At\u00e9 a pr\u00f3xima<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fala a\u00ed pessoal. Depois de um bom tempo \u201csumido\u201d aqui do blog, vamos dar continuidade aqui com as postagens de programa\u00e7\u00e3o da linguagem Python, falando agora sobre ESTRUTURAS DE REPETI\u00c7\u00c3O&hellip;<\/p>\n","protected":false},"author":1,"featured_media":747,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,3,27],"tags":[],"class_list":["post-746","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-algoritmo","category-programacao","category-python"],"_links":{"self":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/746","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/comments?post=746"}],"version-history":[{"count":7,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/746\/revisions"}],"predecessor-version":[{"id":774,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/posts\/746\/revisions\/774"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media\/747"}],"wp:attachment":[{"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/media?parent=746"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/categories?post=746"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/lucianodev.com.br\/blog\/wp-json\/wp\/v2\/tags?post=746"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}