<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Joao Carlos Sousa do Vale</title>
    <description>The latest articles on DEV Community by Joao Carlos Sousa do Vale (@jcarlosvale).</description>
    <link>https://dev.to/jcarlosvale</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F821827%2F6b14ddb2-a04a-459a-b239-c8f44e0220e4.png</url>
      <title>DEV Community: Joao Carlos Sousa do Vale</title>
      <link>https://dev.to/jcarlosvale</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/jcarlosvale"/>
    <language>en</language>
    <item>
      <title>Comandos básicos GIT e vídeo de uso no JetBrains</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Thu, 01 Jun 2023 20:59:34 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/comandos-basicos-git-e-video-de-uso-no-jetbrains-5epg</link>
      <guid>https://dev.to/jcarlosvale/comandos-basicos-git-e-video-de-uso-no-jetbrains-5epg</guid>
      <description>&lt;h1&gt;
  
  
  Conteúdo &lt;a&gt;&lt;/a&gt;
&lt;/h1&gt;

&lt;ol&gt;
&lt;li&gt;Introdução&lt;/li&gt;
&lt;li&gt;Instalando o GIT&lt;/li&gt;
&lt;li&gt;Cenário de estudo&lt;/li&gt;
&lt;li&gt;Comando - git init&lt;/li&gt;
&lt;li&gt;Comando - git status&lt;/li&gt;
&lt;li&gt;Comando - git add&lt;/li&gt;
&lt;li&gt;Comando - git commit&lt;/li&gt;
&lt;li&gt;Comando - git log&lt;/li&gt;
&lt;li&gt;Comando - git diff&lt;/li&gt;
&lt;li&gt;Comando - git branch&lt;/li&gt;
&lt;li&gt;Comando - git merge&lt;/li&gt;
&lt;li&gt;Comando - git clone&lt;/li&gt;
&lt;li&gt;Comando - git pull&lt;/li&gt;
&lt;li&gt;Comando - git push&lt;/li&gt;
&lt;li&gt;Linkedin&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Vídeo - Git e Github sem linhas de comando
&lt;/h2&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/nXTmM3Kd_FI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Independente da linguagem de programação que você domina (ex. Java, C#, .NET, Python, Kotlin, Javascript, etc) ou de seu perfil na área de TI como &lt;em&gt;backend&lt;/em&gt;, &lt;em&gt;frontend&lt;/em&gt;, &lt;em&gt;fullstack&lt;/em&gt;, &lt;em&gt;devops&lt;/em&gt;, entre outros perfis; cedo ou tarde o &lt;a href="https://git-scm.com/" rel="noopener noreferrer"&gt;GIT&lt;/a&gt; fará parte de sua vida profissional.&lt;/p&gt;

&lt;p&gt;De acordo com o site oficial:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Em resumo, um sistema de controle de versões distribuído aplicável a projetos de qualquer tamanho.&lt;/strong&gt; Mas o que é um sistema de controle de versões? Ora, com o GIT conseguimos gerenciar as alterações feitas em nosso código, controlando o que foi alterado, por quem foi alterado, e acompanhar todo o histórico de seu versionamento.&lt;/p&gt;

&lt;h3&gt;
  
  
  E o tal do GitHub?
&lt;/h3&gt;

&lt;p&gt;Já o &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; é uma plataforma de armazenamento de repositórios GIT em nuvem, além de armazenar localmente em seu GIT, você pode usar o GitHub como &lt;em&gt;backup&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Além do GitHub temos outras plataformas concorrentes bastante utilizadas como o &lt;a href="https://gitlab.com" rel="noopener noreferrer"&gt;GitLab&lt;/a&gt;, &lt;a href="https://bitbucket.org/" rel="noopener noreferrer"&gt;Bitbucket&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Neste artigo explicarei os comandos mais utilizados do Git e no vídeo publicado em &lt;a href="https://youtu.be/nXTmM3Kd_FI" rel="noopener noreferrer"&gt;meu canal do Youtube&lt;/a&gt;, como estes comandos podem ser utilizados pela interface do &lt;a href="https://www.jetbrains.com/idea/" rel="noopener noreferrer"&gt;IntelliJ&lt;/a&gt; ou das ferramentas Jetbrains.&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o GIT &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Para você aprender a usar o GIT, sugiro a instalação em sua máquina: faça o &lt;a href="https://git-scm.com/downloads" rel="noopener noreferrer"&gt;download do site oficial&lt;/a&gt; e siga o passo a passo, é bastante intuitivo.&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Cenário de Estudo &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Aprenderemos a usar o Git para controlar as versões de um projeto fictício de armazenamento de arquivos TXT, que poderiam ser códigos fonte, scripts, ou qualquer outro tipo de arquivo.&lt;/p&gt;

&lt;p&gt;Nosso primeiro passo será a criação de uma pasta/diretório &lt;em&gt;HelloGit&lt;/em&gt; em nossa máquina:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqmu6dwvp4ihb0fmgmr5.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffqmu6dwvp4ihb0fmgmr5.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Próximos passos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;criar um arquivo ola.txt dentro da pasta criada&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frr0rp1m28u31otycwjlm.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frr0rp1m28u31otycwjlm.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;salvar o arquivo com algum conteúdo, por exemplo, frase &lt;em&gt;Olá&lt;/em&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2a5yfvxd2imxd3guefm6.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2a5yfvxd2imxd3guefm6.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 01 - git init &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;git init&lt;/code&gt; aplicado em um diretório torna este diretório gerenciado ou versionado pelo Git. Todos os arquivos e subdiretórios presentes neste diretório poderão ser controlados e versionados pelo Git.&lt;br&gt;
Usando o &lt;em&gt;git bash&lt;/em&gt;, presente na instalação do Git, navegue até a pasta &lt;em&gt;HelloGit&lt;/em&gt; e digite &lt;code&gt;git init&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Após a execução do comando, a pasta &lt;em&gt;.git&lt;/em&gt; responsável pelos arquivos de controle usado pelo git, será criada. Além da criação do &lt;em&gt;branch&lt;/em&gt; &lt;em&gt;master&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Um &lt;em&gt;branch&lt;/em&gt; podemos representar como um "contexto", um "namespace" ou a ramificação que possui um conjunto específico de arquivos versionados. O &lt;em&gt;branch&lt;/em&gt; &lt;em&gt;master&lt;/em&gt; ou o &lt;em&gt;branch&lt;/em&gt; &lt;em&gt;main&lt;/em&gt; representam por convenção, a ramificação principal do seu projeto, onde ficam os arquivos com as versões usadas em produção, ou versões oficiais.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff1wa41j72oq1rbdvaiqy.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff1wa41j72oq1rbdvaiqy.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 02 - git status &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;git status&lt;/code&gt; mostra o estado atual do &lt;em&gt;branch&lt;/em&gt;, ilustrando os arquivos versionados e não versionados. Em nosso caso o arquivo &lt;em&gt;ola.txt&lt;/em&gt; não se encontra versionado ainda.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2uprnxrcgu72g7aywh0.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq2uprnxrcgu72g7aywh0.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para versionamos um arquivo ou conjunto de arquivos, o Git segue o fluxo, use a figura abaixo como referência para os próximos comandos:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulyj541qm2zzhenfe4r8.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulyj541qm2zzhenfe4r8.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Experimente também o &lt;code&gt;git status -s&lt;/code&gt;, a versão curta de visualização do estado dos arquivos.&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 03 - git add &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;git add &amp;lt;nome_arquivo&amp;gt;&lt;/code&gt;adiciona os arquivos que não estão sendo rastreados a uma área intermediária de controle, denominado &lt;em&gt;cache&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Execute:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git add ola.txt&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;git status&lt;/code&gt; para visualizar o estado dos arquivos&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjbst2x7cp9qmv35xipxf.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjbst2x7cp9qmv35xipxf.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Arquivos na zona de &lt;em&gt;cache&lt;/em&gt; podem ser editados livremente porque não estão versionados ainda. Caso queiras reverter o &lt;code&gt;git add&lt;/code&gt;, pode ser usado o comando &lt;code&gt;git rm --cached&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Quando existir múltiplos arquivos a serem adicionados, uma opção é usar o &lt;code&gt;git add .&lt;/code&gt; com o "." representando todos os arquivos.&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 04 - git commit &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;O comando &lt;code&gt;git commit -m "&amp;lt;mensagem&amp;gt;"&lt;/code&gt; versiona os arquivos adicionados no "&lt;em&gt;cache&lt;/em&gt;". Através do &lt;em&gt;commit&lt;/em&gt; nossos arquivos passam a ser versionados pelo Git. Qualquer alteração nos mesmos, após o &lt;em&gt;commit&lt;/em&gt;, exigirão um novo &lt;em&gt;commit&lt;/em&gt; atualizando a sua versão no repositório Git local.&lt;/p&gt;

&lt;p&gt;Próximos passos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;verifique o &lt;em&gt;status&lt;/em&gt; dos arquivos, note que temos o arquivo 
&lt;em&gt;ola.txt&lt;/em&gt; somente adicionado mas não "commitado".&lt;/li&gt;
&lt;li&gt;Execute `git commit -m "" para &lt;em&gt;commitar&lt;/em&gt; seus arquivos, e versionados pelo Git.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6cvbdc36f20amzyn9du8.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6cvbdc36f20amzyn9du8.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 05 - git log &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Agora que temos nosso primeiro &lt;em&gt;commit&lt;/em&gt;, utilizaremos o comando &lt;code&gt;git log&lt;/code&gt; para visualizar o histórico de &lt;em&gt;commits&lt;/em&gt; de nosso projeto. Ou a forma curta com o comando &lt;code&gt;git log --oneline&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxdhzgbjt9c4e97kcvg2.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpxdhzgbjt9c4e97kcvg2.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Atente que cada commit possui um identificador.&lt;/p&gt;

&lt;h3&gt;
  
  
  Alterando e adicionando diversos arquivos
&lt;/h3&gt;

&lt;p&gt;Após um arquivo ser &lt;em&gt;commitado&lt;/em&gt;, qualquer alteração neste arquivo, exigirá um novo ciclo de &lt;em&gt;commit&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Vamos criar dois novos arquivos em nosso projeto: &lt;em&gt;hello.txt&lt;/em&gt; e &lt;em&gt;hallo.txt&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsab7t44jkalr6ofsq9yl.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsab7t44jkalr6ofsq9yl.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora repetir o ciclo:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git add .&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git status&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;git commit -m "novos arquivos"&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzd05rn4miz1r9e6hrwrp.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzd05rn4miz1r9e6hrwrp.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora temos dois commits em nosso branch &lt;code&gt;master&lt;/code&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ml69qiahgvqf9x7c5q5.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9ml69qiahgvqf9x7c5q5.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 07 - git diff &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Experimente alterar algum dos arquivos, por exemplo, modifique o &lt;code&gt;ola.txt&lt;/code&gt; adicionando &lt;em&gt;Ola Mundo&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Verifique as alterações com o comando&lt;code&gt;git diff&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbzrx7l48jy0sb1ju9j1.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwbzrx7l48jy0sb1ju9j1.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Atualize seu código, use novamente &lt;code&gt;git add .&lt;/code&gt;, &lt;code&gt;git status&lt;/code&gt;, &lt;code&gt;git commit -m &amp;lt;mensagem&amp;gt;&lt;/code&gt;, &lt;code&gt;git log --oneline&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdr0oe2i5xf2sl0w1xs4r.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdr0oe2i5xf2sl0w1xs4r.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 08 - git branch &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Quando queremos implementar novas &lt;em&gt;features&lt;/em&gt;, corrigir bugs, fazer melhorias, é comum a criação de &lt;em&gt;branches&lt;/em&gt; para alterações controladas nos arquivos. E ao final, fazemos o &lt;em&gt;merge&lt;/em&gt; do branch trabalhado ao branch principal.&lt;/p&gt;

&lt;p&gt;Para criar o novo &lt;em&gt;branch&lt;/em&gt;, opção 1:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git branch &amp;lt;nome_branch&amp;gt;&lt;/code&gt; para criar o branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvf3gchh6ipgf6b02wesv.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvf3gchh6ipgf6b02wesv.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git checkout &amp;lt;nome_branch&amp;gt;&lt;/code&gt; para mudar para o branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhp2jsg8bra281drlov9.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwhp2jsg8bra281drlov9.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Observe com atenção que o &lt;em&gt;branch&lt;/em&gt; corrente é o &lt;em&gt;mudar-ingles&lt;/em&gt;. Com o &lt;code&gt;git log&lt;/code&gt; é possível ver os &lt;em&gt;branches&lt;/em&gt; existentes e o corrente (HEAD).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2otdsc1kzvenhvr9ot9b.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2otdsc1kzvenhvr9ot9b.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h3&gt;
  
  
  Opção 2:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;git checkout -b &amp;lt;nome_branch&amp;gt;&lt;/code&gt;, cria e muda para o branch.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Volte para o &lt;em&gt;master&lt;/em&gt; com &lt;code&gt;git checkout master&lt;/code&gt; e crie um outro &lt;em&gt;branch&lt;/em&gt; a partir do &lt;em&gt;master&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuea14n9khkpyax3tc37z.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuea14n9khkpyax3tc37z.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visualize as informações com &lt;code&gt;git log&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjy0v8pvjzc32abcc8mqq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjy0v8pvjzc32abcc8mqq.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Finalmente no &lt;em&gt;branch&lt;/em&gt; inglês modifique o arquivo &lt;em&gt;hello.txt&lt;/em&gt; e no &lt;em&gt;branch&lt;/em&gt; alemão, o aquivo &lt;em&gt;hallo.txt&lt;/em&gt;. Aproveite e observe que a alteração em cada &lt;em&gt;branch&lt;/em&gt; não afeta os outros &lt;em&gt;branches&lt;/em&gt;. É a mágica de permitir o trabalho em &lt;em&gt;branches&lt;/em&gt; paralelos!!!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfkc16t69ws5cqapblwi.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftfkc16t69ws5cqapblwi.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf498scxlomdauxltd9x.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcf498scxlomdauxltd9x.JPG" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnvwurcex0087whi0bf6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffnvwurcex0087whi0bf6.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comando 09 - git merge &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Com o trabalho concluído em cada &lt;em&gt;branch&lt;/em&gt;, próximo passo será o &lt;em&gt;merge&lt;/em&gt; no &lt;em&gt;branch&lt;/em&gt; &lt;em&gt;master&lt;/em&gt; com o comando &lt;code&gt;git merge&lt;/code&gt;.&lt;br&gt;
Depois do &lt;em&gt;merge&lt;/em&gt; feito, podemos apagar o &lt;em&gt;branch&lt;/em&gt; com o comando &lt;code&gt;git branch -d &amp;lt;nome_branch&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fah92seq767xgmc189z7b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fah92seq767xgmc189z7b.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;E com o &lt;em&gt;mudar alemão&lt;/em&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8tba1iq08vu0f5pmh9i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc8tba1iq08vu0f5pmh9i.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Comandos com repositórios remotos
&lt;/h2&gt;

&lt;p&gt;Para finalizar, quando usamos algum repositório remoto como o Github, temos que conhecer mais 3 comandos básicos: &lt;code&gt;git clone&lt;/code&gt;, &lt;code&gt;git push&lt;/code&gt; e o &lt;code&gt;git pull&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Git clone &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;O &lt;code&gt;git clone&lt;/code&gt; é usado para clonar um repositório remoto. Quando queremos baixar um repositório do Github, por exemplo, copiamos sua URL e usamos o &lt;code&gt;git clone &amp;lt;URL&amp;gt;&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fox3qr5r0ip9i5rtavhsn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fox3qr5r0ip9i5rtavhsn.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h3&gt;
  
  
  Git pull &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;O comando &lt;code&gt;git pull&lt;/code&gt; é usado para atualizar localmente um &lt;em&gt;branch&lt;/em&gt; de sua localização remota. Por exemplo, uso do &lt;code&gt;git pull&lt;/code&gt; no &lt;em&gt;master&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffe3hfz0qty3oyrnphn3s.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffe3hfz0qty3oyrnphn3s.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h3&gt;
  
  
  Git push &lt;a&gt;&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;O comando &lt;code&gt;git push&lt;/code&gt; faz o caminho inverso do &lt;code&gt;pull&lt;/code&gt;. Este comando serve para enviar ao repositório remoto, as alterações de um &lt;em&gt;branch&lt;/em&gt; local.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsquqgkexopvjrkc3pawf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsquqgkexopvjrkc3pawf.png" alt="Image description"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

&lt;h2&gt;
  
  
  Palavras finais &lt;a&gt;&lt;/a&gt;
&lt;/h2&gt;

&lt;p&gt;Espero que tenham gostado de conhecer ou revisar os comandos básicos do Git.&lt;br&gt;
&lt;a href="https://youtu.be/nXTmM3Kd_FI" rel="noopener noreferrer"&gt;No vídeo do Youtube&lt;/a&gt;, você conhecerá outros comandos como &lt;code&gt;rebase&lt;/code&gt;, &lt;code&gt;squash&lt;/code&gt;, &lt;code&gt;merge&lt;/code&gt;, &lt;code&gt;stash&lt;/code&gt; usando as ferramentas &lt;em&gt;JetBrains&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Compartilhe com seus amigos e me adicione no &lt;a href="https://www.linkedin.com/in/joaocarlosvale/" rel="noopener noreferrer"&gt;Linkedin&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;voltar ao conteúdo&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Technical Interview - Code #007 - LeetCode #606. Construct String from Binary Tree</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Wed, 07 Sep 2022 20:59:33 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/technical-interview-code-007-leetcode-606-construct-string-from-binary-tree-512a</link>
      <guid>https://dev.to/jcarlosvale/technical-interview-code-007-leetcode-606-construct-string-from-binary-tree-512a</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/67KKInzPfrI"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Level
&lt;/h2&gt;

&lt;p&gt;Easy&lt;/p&gt;

&lt;h2&gt;
  
  
  Complexidade
&lt;/h2&gt;

&lt;p&gt;Linear&lt;/p&gt;

&lt;h2&gt;
  
  
  Topicos
&lt;/h2&gt;

&lt;p&gt;Arvores Binarias, Travessia Pre-Ordem&lt;/p&gt;

&lt;h2&gt;
  
  
  Problema
&lt;/h2&gt;

&lt;p&gt;Dada a raiz de uma árvore binária, construir uma String composta de parênteses e valores inteiros de uma árvore binária com o caminho de travessia da pré-compra, e devolvê-lo.&lt;/p&gt;

&lt;p&gt;Omitir todos os pares de parênteses vazios que não afetam a relação de mapeamento um-para-um entre a cadeia de caracteres e a árvore binária original.&lt;/p&gt;

&lt;p&gt;Restrições:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O número de nós na árvore está na faixa [1, 104].&lt;/li&gt;
&lt;li&gt;-1000 &amp;lt;= Node.val &amp;lt;= 1000&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Exemplo
&lt;/h2&gt;

&lt;p&gt; &lt;/p&gt; 

&lt;p&gt;&lt;strong&gt;Example 1:&lt;/strong&gt;&lt;/p&gt; 

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pu0qdS11--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets.leetcode.com/uploads/2021/05/03/cons1-tree.jpg" class="article-body-image-wrapper"&gt;&lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--pu0qdS11--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets.leetcode.com/uploads/2021/05/03/cons1-tree.jpg" width="292" height="301"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;pre&gt;
&lt;strong&gt;Input:&lt;/strong&gt; root = [1,2,3,4]
&lt;strong&gt;Output:&lt;/strong&gt; "1(2(4))(3)"
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Example 2:&lt;/strong&gt;&lt;/p&gt; 

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--eJ9RoxTy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets.leetcode.com/uploads/2021/05/03/cons2-tree.jpg" class="article-body-image-wrapper"&gt;&lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--eJ9RoxTy--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://assets.leetcode.com/uploads/2021/05/03/cons2-tree.jpg" width="207" height="293"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;pre&gt;
&lt;strong&gt;Input:&lt;/strong&gt; root = [1,2,3,null,4]
&lt;strong&gt;Output:&lt;/strong&gt; "1(2()(4))(3)"
&lt;/pre&gt;

&lt;h2&gt;
  
  
  Implementar
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Solution&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;String&lt;/span&gt; &lt;span class="nf"&gt;tree2str&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;TreeNode&lt;/span&gt; &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Fonte
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;Construct String from Binary Tree
&lt;a href="https://leetcode.com/problems/construct-string-from-binary-tree/"&gt;https://leetcode.com/problems/construct-string-from-binary-tree/
&lt;/a&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  LinkedIn
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/joaocarlosvale/"&gt;https://www.linkedin.com/in/joaocarlosvale/&lt;br&gt;
&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/jcarlosvale/playground/blob/master/src/main/java/tests/leetcode/challenge30days/september2022/ConstructStringFromBinaryTree.java"&gt;source&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>career</category>
      <category>leetcode</category>
    </item>
    <item>
      <title>Technical Interview - Code #006 - LeetCode #814. Binary Tree Pruning</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Wed, 07 Sep 2022 00:23:08 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/technical-interview-code-006-leetcode-814-binary-tree-pruning-1gif</link>
      <guid>https://dev.to/jcarlosvale/technical-interview-code-006-leetcode-814-binary-tree-pruning-1gif</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/DYQT3o3nuQk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Level
&lt;/h2&gt;

&lt;p&gt;Medium&lt;/p&gt;

&lt;h2&gt;
  
  
  Complexidade
&lt;/h2&gt;

&lt;p&gt;Linear&lt;/p&gt;

&lt;h2&gt;
  
  
  Topicos
&lt;/h2&gt;

&lt;p&gt;Arvores Binarias, Travessia Pre-Ordem&lt;/p&gt;

&lt;h2&gt;
  
  
  Problema
&lt;/h2&gt;

&lt;p&gt;Dada a raiz de uma árvore binária, devolva a mesma árvore onde cada sub-árvore (da árvore dada) que não contenha um 1 foi removida.&lt;/p&gt;

&lt;p&gt;Restrições:&lt;/p&gt;

&lt;p&gt;O número de nós na árvore está na faixa [1, 200].&lt;br&gt;
O nó.val ou é 0 ou 1.&lt;/p&gt;

&lt;h2&gt;
  
  
  Exemplo
&lt;/h2&gt;

&lt;p&gt; &lt;/p&gt; 

&lt;p&gt;&lt;strong&gt;Example 1:&lt;/strong&gt;&lt;/p&gt; 

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nZBm43u5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-lc-upload.s3.amazonaws.com/uploads/2018/04/06/1028_2.png" class="article-body-image-wrapper"&gt;&lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--nZBm43u5--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-lc-upload.s3.amazonaws.com/uploads/2018/04/06/1028_2.png" width="880" height="246"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;pre&gt;
&lt;strong&gt;Input:&lt;/strong&gt; root = [1,null,0,0,1]
&lt;strong&gt;Output:&lt;/strong&gt; [1,null,0,null,1]
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Example 2:&lt;/strong&gt;&lt;/p&gt; 

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mdPjodtJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-lc-upload.s3.amazonaws.com/uploads/2018/04/06/1028_1.png" class="article-body-image-wrapper"&gt;&lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--mdPjodtJ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-lc-upload.s3.amazonaws.com/uploads/2018/04/06/1028_1.png" width="880" height="203"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;pre&gt;
&lt;strong&gt;Input:&lt;/strong&gt; root = [1,0,1,0,0,0,1]
&lt;strong&gt;Output:&lt;/strong&gt; [1,null,1,null,1]
&lt;/pre&gt;

&lt;p&gt;&lt;strong&gt;Example 3:&lt;/strong&gt;&lt;/p&gt; 

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JvPyy1b4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-lc-upload.s3.amazonaws.com/uploads/2018/04/05/1028.png" class="article-body-image-wrapper"&gt;&lt;img alt="" src="https://res.cloudinary.com/practicaldev/image/fetch/s--JvPyy1b4--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://s3-lc-upload.s3.amazonaws.com/uploads/2018/04/05/1028.png" width="880" height="237"&gt;&lt;/a&gt; &lt;/p&gt;

&lt;pre&gt;
&lt;strong&gt;Input:&lt;/strong&gt; root = [1,1,0,1,1,0,1,0]
&lt;strong&gt;Output:&lt;/strong&gt; [1,1,0,1,1,null,1]
&lt;/pre&gt;

&lt;h2&gt;
  
  
  Implementar
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight java"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Solution&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;public&lt;/span&gt; &lt;span class="nc"&gt;TreeNode&lt;/span&gt; &lt;span class="nf"&gt;pruneTree&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="nc"&gt;TreeNode&lt;/span&gt; &lt;span class="n"&gt;root&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;

    &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Fonte
&lt;/h2&gt;

&lt;p&gt;LeetCode #814. Binary Tree Pruning&lt;br&gt;
  &lt;a href="https://leetcode.com/problems/binary-tree-pruning/"&gt;https://leetcode.com/problems/binary-tree-pruning/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  LinkedIn
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.linkedin.com/in/joaocarlosvale/"&gt;https://www.linkedin.com/in/joaocarlosvale/&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  GitHub
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/jcarlosvale/playground/blob/master/src/main/java/tests/leetcode/challenge30days/september2022/BinaryTreePruning.java"&gt;https://github.com/jcarlosvale/playground/blob/master/src/main/java/tests/leetcode/challenge30days/september2022/BinaryTreePruning.java&lt;/a&gt;&lt;/p&gt;

</description>
      <category>java</category>
      <category>programming</category>
      <category>career</category>
    </item>
    <item>
      <title>Projeto Final - Python #18</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Thu, 14 Jul 2022 14:08:31 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/projeto-final-python-18-58ea</link>
      <guid>https://dev.to/jcarlosvale/projeto-final-python-18-58ea</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/CJBPwyh3f_s"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>programming</category>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Lista de Exercícios 07 - Funções #17</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Tue, 12 Jul 2022 23:19:53 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/lista-de-exercicios-07-funcoes-17-4ajc</link>
      <guid>https://dev.to/jcarlosvale/lista-de-exercicios-07-funcoes-17-4ajc</guid>
      <description>&lt;p&gt;Q1. Implemente a função &lt;strong&gt;&lt;em&gt;collatz( )&lt;/em&gt;&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;se o número for par, ela retorna a divisão inteira deste número por 2.&lt;/li&gt;
&lt;li&gt;se o número for ímpar, ela retorna (3 * número + 1).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Faça um programa que leia do teclado um número e imprima o retorno da função &lt;strong&gt;&lt;em&gt;collatz()&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Q2. Modifique o programa anterior, e recursivamente execute a função &lt;strong&gt;&lt;em&gt;collatz( )&lt;/em&gt;&lt;/strong&gt; até o valor de retorno da função seja igual a 1. &lt;/p&gt;

&lt;p&gt;Por exemplo, se o usuário digita 3, teremos que imprimir na tela os valores: &lt;strong&gt;&lt;em&gt;3 → 10 → 5 → 16 → 8 → 4 → 2 → 1&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Fique livre de imprimir os valores da forma que achar mais fácil.&lt;/p&gt;

&lt;p&gt;Q3. Escreva uma função que receba como parâmetro uma lista e retorne uma &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt; com os elementos da lista separados por vírgula, com exceção do último que deve conter a palavra “e”.&lt;/p&gt;

&lt;p&gt;Por exemplo, se a lista for [“banana”, “uva”, “abacaxi”], o método deve retornar a &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt; “banana, uva e abacaxi”.&lt;/p&gt;

&lt;p&gt;Q4. Implemente uma função que simule o lançamento de uma moeda, usando o módulo &lt;strong&gt;&lt;em&gt;random&lt;/em&gt;&lt;/strong&gt;. Este método receberá como parâmetro a quantidade de lançamentos.&lt;/p&gt;

&lt;p&gt;A função imprimirá a quantidade de “caras” e “coroas” gerados.&lt;/p&gt;

&lt;p&gt;Por exemplo, se o parâmetro for 5, o programa poderá imprimir: “5 coroas 0 caras” ou “3 coroas 2 caras” ou “1 coroas 4 caras”, entre outras possibilidades.&lt;/p&gt;

&lt;p&gt;Q5. Escreva uma função chamada &lt;strong&gt;&lt;em&gt;cidade_pais()&lt;/em&gt;&lt;/strong&gt; que recebe como parâmetro o nome de uma cidade e de seu país. A função deve retornar uma &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt; formatada como “Santiago, Chile”.&lt;/p&gt;

&lt;p&gt;Q6. Implemente uma lista contendo um conjunto de mensagens de texto. Passe esta lista como parâmetro para uma função responsável por imprimir as mensagens em linhas diferentes.&lt;/p&gt;

&lt;p&gt;Q7. Um número é &lt;strong&gt;&lt;em&gt;capicua&lt;/em&gt;&lt;/strong&gt; quando lido da esquerda para a direita ou da direita para a esquerda. O ano 2002 é um ano capicua. Elabore uma função que verifique essa característica.&lt;/p&gt;

&lt;p&gt;Q8. Criar uma função que receba uma mensagem e dois caracteres e substitua todas as ocorrências do 1o. caractere pelo 2o. caractere.&lt;/p&gt;

&lt;p&gt;Exemplo:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;digite mensagem:
SE NAO APRENDI TODOS OS EXERCICIOS DE UM CAPITULO, NAO DEVO PASSAR PARA O OUTRO
digite 1a. letra E
digite 2a. letra K
SK NAO APRKNDI TODOS OS KXKRCICIOS DK UM CAPITULO, NAO DKVO PASSAR PARA O OUTRO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Q9. Criar uma função que receba um vetor de inteiros e retorne True se o vetor estiver ordenado ou False se não estiver.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Funções em Python - #16</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Tue, 12 Jul 2022 23:19:29 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/funcoes-em-python-16-5f11</link>
      <guid>https://dev.to/jcarlosvale/funcoes-em-python-16-5f11</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/R1Z69FTR3rE"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/pPXZhL0NGrk"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Uma &lt;strong&gt;função&lt;/strong&gt; é um miniprograma dentro de um programa. É uma estrutura da linguagem que possibilita uma melhor organização de seu programa e facilita a resolução de problemas mais complexos, através delas podemos resolver partes específicas do problema.&lt;/p&gt;

&lt;p&gt;Outra vantagem do uso de funções é a possiblidade de reutilização do código, podemos por exemplo, criar uma biblioteca de funções e utilizá-las em nossos programas, sem a necessidade de reescrever a mesma funcionalidade.&lt;/p&gt;

&lt;p&gt;Neste capítulo iremos aprender a usar outras funções disponíveis na linguagem como também a criar as nossas próprias funções.&lt;/p&gt;

&lt;h2&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;bool()&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;bool()&lt;/em&gt;&lt;/strong&gt; retorna &lt;strong&gt;&lt;em&gt;True&lt;/em&gt;&lt;/strong&gt; ou &lt;strong&gt;&lt;em&gt;False&lt;/em&gt;&lt;/strong&gt; ao receber um parâmetro.&lt;/p&gt;

&lt;p&gt;Se o valor é numérico, ele retornará &lt;strong&gt;&lt;em&gt;False&lt;/em&gt;&lt;/strong&gt; se o parâmetro é igual a zero.&lt;/p&gt;

&lt;p&gt;Para &lt;strong&gt;&lt;em&gt;strings&lt;/em&gt;&lt;/strong&gt;, listas e dicionários vazios, o retorno também será &lt;strong&gt;&lt;em&gt;False&lt;/em&gt;&lt;/strong&gt;. Como também para o valor &lt;strong&gt;&lt;em&gt;None&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#função bool() em ação
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;0.00&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mf"&gt;3.14&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="bp"&gt;None&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'casa'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;([])&lt;/span&gt;
&lt;span class="bp"&gt;False&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;bool&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="bp"&gt;True&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;abs()&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;abs( )&lt;/em&gt;&lt;/strong&gt; retorna o valor absoluto de um número. O valor sem sinal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#função abs() em ação
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;20&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;20&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mf"&gt;5.433&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mf"&gt;5.433&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;abs&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Usando módulos
&lt;/h2&gt;

&lt;p&gt;As funções em &lt;em&gt;Python&lt;/em&gt; são organizadas em &lt;strong&gt;&lt;em&gt;módulos&lt;/em&gt;&lt;/strong&gt;. Cada módulo possui um conjunto de funções relacionadas, que podem ser utilizadas em nossos programas.&lt;/p&gt;

&lt;p&gt;Antes de utilizarmos funções de um módulo, precisamos importar o módulo através da instrução &lt;strong&gt;&lt;em&gt;import&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instrução &lt;strong&gt;&lt;em&gt;import&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Por exemplo, se quisermos gerar 3 números inteiros de forma randômica ou aleatória, entre 1 e 11 com a função &lt;strong&gt;&lt;em&gt;randint()&lt;/em&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - gerando 3 números inteiros aleatórios
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 01 temos que &lt;strong&gt;&lt;em&gt;importar&lt;/em&gt;&lt;/strong&gt; o módulo &lt;strong&gt;&lt;em&gt;random&lt;/em&gt;&lt;/strong&gt; que contém a função &lt;strong&gt;&lt;em&gt;randint( )&lt;/em&gt;&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;Na linha 03 fazemos a chamada do método, utilizando o nome do módulo e o nome da função, concatenados com um ponto (“.”) .&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - gerando 3 números inteiros aleatórios 
10
7
4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Instrução &lt;strong&gt;&lt;em&gt;from&lt;/em&gt;&lt;/strong&gt; - &lt;strong&gt;&lt;em&gt;import&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Uma alternativa na sintaxe &lt;strong&gt;&lt;em&gt;import&lt;/em&gt;&lt;/strong&gt; é utilizar a palavra reservada &lt;strong&gt;&lt;em&gt;from&lt;/em&gt;&lt;/strong&gt; e o asterisco (“*”):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - gerando 3 números inteiros aleatórios versão 2
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com a sintaxe da linha 01, não é necessário utilizar o prefixo &lt;strong&gt;random.&lt;/strong&gt; para executar o método &lt;strong&gt;&lt;em&gt;randint( )&lt;/em&gt;&lt;/strong&gt;. Podemos interpretar a instrução &lt;code&gt;from random import *&lt;/code&gt; como, “do (módulo) random, importe tudo”. O asterisco em computação, geralmente, representa “tudo”, “todos”.&lt;/p&gt;

&lt;p&gt;Ou podemos especificar quais funções importar com a mesma sintaxe.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - gerando 3 números inteiros aleatórios versão 3
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;randint&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando &lt;strong&gt;&lt;em&gt;alias&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Podemos utilizar um “apelido” ou &lt;strong&gt;&lt;em&gt;alias&lt;/em&gt;&lt;/strong&gt; no nome das funções importadas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - gerando 3 números inteiros aleatórios versão 4
&lt;/span&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;randint&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;rand&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;rand&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também é permitido o uso de &lt;em&gt;alias&lt;/em&gt; em nome de módulo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - gerando 3 números inteiros aleatórios versão 5
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt; &lt;span class="k"&gt;as&lt;/span&gt; &lt;span class="n"&gt;r&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;r&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Mútiplos &lt;em&gt;imports&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Finalmente, para importarmos múltiplos módulos em um programa, basta separarmos os nomes por vírgula.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Múltiplos imports
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;math&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sys&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Módulo &lt;strong&gt;&lt;em&gt;time&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;asctime( )&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;asctime( )&lt;/em&gt;&lt;/strong&gt; retorna a data e horário atual como uma &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando função asctime()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asctime&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="n"&gt;Mon&lt;/span&gt; &lt;span class="n"&gt;Apr&lt;/span&gt; &lt;span class="mi"&gt;11&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;49&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;25&lt;/span&gt; &lt;span class="mi"&gt;2022&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também podemos usar a &lt;strong&gt;&lt;em&gt;asctime( )&lt;/em&gt;&lt;/strong&gt; para gerar uma data e hora de uma &lt;em&gt;string&lt;/em&gt;. Para isso, temos que fornecer uma tupla com 9 valores: o ano, dia, hora, minutos, segundos, dia da semana (0 é Segunda-Feira, 1 é Terça-Feira, …, 6 - Domingo), dia do ano (pode colocar ZERO), horário de verão (1 - SIM, 0 - NÃO).&lt;/p&gt;

&lt;p&gt;Veja alguns exemplos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando função asctime() com tuplas
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2021&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asctime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;Wed&lt;/span&gt; &lt;span class="n"&gt;Dec&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;00&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt; &lt;span class="mi"&gt;2021&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2007&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;asctime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;Wed&lt;/span&gt; &lt;span class="n"&gt;Jul&lt;/span&gt; &lt;span class="mi"&gt;31&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;45&lt;/span&gt; &lt;span class="mi"&gt;2007&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;time( )&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;time()&lt;/em&gt;&lt;/strong&gt; retorna a quantidade de segundos desde 01-Janeiro-1970 00:00:00 AM.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando função time()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt;
&lt;span class="mf"&gt;1649667539.7314017&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;É bastante utilizado quando você quer saber o tempo de execução de um programa ou trecho de código.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - tempoSomar.py
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;somar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;soma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;soma&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;soma&lt;/span&gt;

&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite quantidade de numeros para somar: "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;inicio&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;somar&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;span class="n"&gt;fim&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Tempo de execução: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;fim&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;inicio&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;" segundos"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Capturamos o tempo antes de executar a função &lt;strong&gt;&lt;em&gt;somar( )&lt;/em&gt;&lt;/strong&gt; na linha 10. E após a execução capturamos novamente o tempo.&lt;/p&gt;

&lt;p&gt;Na linha 13 imprimimos a diferença no tempo de execução da função.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - tempoSomar.py
Digite quantidade de numeros para somar: 100000
4999950000
Tempo de execução:  0.003997802734375  segundos
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;localtime( )&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;localtime()&lt;/em&gt;&lt;/strong&gt; retorna um tupla com 9 valores locais: ano, mês, dia, hora, minutos, segundos, dia do ano e se é horário de verão.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando função localtime()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;time&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;localtime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;struct_time&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tm_year&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;2022&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_mon&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_mday&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_hour&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;11&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_min&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;18&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_sec&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;48&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_wday&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_yday&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;101&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;tm_isdst&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;localtime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Minutos "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;Minutos&lt;/span&gt;  &lt;span class="mi"&gt;18&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Dia do ano "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;Dia&lt;/span&gt; &lt;span class="n"&gt;do&lt;/span&gt; &lt;span class="n"&gt;ano&lt;/span&gt;  &lt;span class="mi"&gt;101&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Módulo &lt;strong&gt;&lt;em&gt;copy&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Função copy( )
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;copy()&lt;/em&gt;&lt;/strong&gt; cria uma cópia de uma lista ou dicionário, criando uma cópia distinta, alterando uma lista ou dicionário não afetará a outra.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando função copy()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;copy&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_original&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"asa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"aviao"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_copia&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_original&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_copia&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"arara"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_original&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'asa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'aviao'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_copia&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'asa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'aviao'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'arara'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Função deepcopy
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;deepcopy()&lt;/em&gt;&lt;/strong&gt; é semelhante à função &lt;strong&gt;&lt;em&gt;copy()&lt;/em&gt;&lt;/strong&gt;, mas aplicado quando os elementos da lista ou do dicionário são outras listas ou dicionários.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - deepcopyAcao.py
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;copy&lt;/span&gt;

&lt;span class="n"&gt;turma_original&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Ana'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'nota'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;7.5&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Bia'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'nota'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;8.5&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="n"&gt;turma_copia&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;copy&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;deepcopy&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;turma_original&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;turma_copia&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;turma_original&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;turma_copia&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Execução - deepcopyAcao.py
&lt;/span&gt;&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Ana'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'nota'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;7.5&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Bia'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'nota'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;8.5&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;
&lt;span class="p"&gt;[{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Ana'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'nota'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;7.5&lt;/span&gt;&lt;span class="p"&gt;}]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Módulo &lt;strong&gt;&lt;em&gt;random&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;random.choice()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;choice()&lt;/em&gt;&lt;/strong&gt; retorna um elemento aleatório da lista.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando função choice()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_cor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"branco"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"vermelho"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="s"&gt;'preto'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="s"&gt;'preto'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="s"&gt;'vermelho'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="s"&gt;'branco'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;choice&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="s"&gt;'branco'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;random.shuffle()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;shuffe()&lt;/em&gt;&lt;/strong&gt; reordena os itens de uma lista.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando função shuffle()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_cor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"branco"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"vermelho"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shuffle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'vermelho'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'branco'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;shuffle&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'branco'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'vermelho'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Módulo &lt;strong&gt;&lt;em&gt;pprint&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Função pprint()
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;prprint()&lt;/em&gt;&lt;/strong&gt; imprime um dicionário ordenando suas chaves.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - countCharPPrint.py
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pprint&lt;/span&gt; 

&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite um texto: "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;letra&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setdefault&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;letra&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;letra&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="n"&gt;pprint&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pprint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Execução - countCharPPrint.py
&lt;/span&gt;&lt;span class="n"&gt;Digite&lt;/span&gt; &lt;span class="n"&gt;um&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;abacaxi&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;morango&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;' '&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'a'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'b'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'c'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'d'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'e'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'g'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'i'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'m'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'n'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'o'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'r'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
 &lt;span class="s"&gt;'x'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Função pformat()
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;pformat()&lt;/em&gt;&lt;/strong&gt; é semelhante ao &lt;strong&gt;&lt;em&gt;pprint()&lt;/em&gt;&lt;/strong&gt; mas ao invés de imprimir na tela, ele retorna uma &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt; com as chaves do dicionários ordenadas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - countCharPformat.py
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;pprint&lt;/span&gt; 

&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite um texto: "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;letra&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setdefault&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;letra&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;letra&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="n"&gt;saida&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pprint&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;pformat&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;saida&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - countCharPformat.py
Digite um texto: bananada
{'a': 4, 'b': 1, 'd': 1, 'n': 2}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Módulo &lt;strong&gt;&lt;em&gt;sys&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;sys.exit( )&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;sys.exit( )&lt;/em&gt;&lt;/strong&gt; é usada para terminar a execução de um programa imediatamente.&lt;/p&gt;

&lt;p&gt;É bastante utilizado quando queremos implementar a saída de um programa após o usuário digitar alguma &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt; definida para terminar a execução do sistema. Por exemplo, enquanto o usuário não digitar &lt;strong&gt;&lt;em&gt;sair&lt;/em&gt;&lt;/strong&gt;, o código abaixo continuará executando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - digite sair para terminar o programa
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;sys&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Programa executando."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite 'sair' para terminar:"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;comando&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;comando&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;'sair'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;sys&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nb"&gt;exit&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No algoritmo acima, importamos o módulo &lt;strong&gt;&lt;em&gt;sys&lt;/em&gt;&lt;/strong&gt; (linha 01) para podermos utilizar a função &lt;strong&gt;&lt;em&gt;exit( )&lt;/em&gt;&lt;/strong&gt; na linha07.&lt;/p&gt;

&lt;p&gt;Criamos um laço &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; infinito, nas linhas 02 a 07, que em cada iteração vai imprimir “Programa executando” e solicitar para que o usuário digite &lt;em&gt;“sair”&lt;/em&gt; para terminar o programa.&lt;/p&gt;

&lt;p&gt;O valor digitado pelo usuário na linha 05 será armazenado na variável &lt;em&gt;comando&lt;/em&gt; e na linha 06, se o valor for igual à &lt;em&gt;“sair”&lt;/em&gt;, a função &lt;strong&gt;&lt;em&gt;exit( )&lt;/em&gt;&lt;/strong&gt; será executada e o programa finalizado. Senão uma nova iteração será executada, repetindo o ciclo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - digite sair para terminar o programa 
Programa executando.
Digite 'sair' para terminar:
teste
Programa executando.
Digite 'sair' para terminar:
nao
Programa executando.
Digite 'sair' para terminar:
quit
Programa executando.
Digite 'sair' para terminar:
sair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Criando funções
&lt;/h2&gt;

&lt;p&gt;Uma função é um pequeno algoritmo que resolve um problema específico, dentro do seu programa. Sua sintaxe é bem simples.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe funções
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nf"&gt;nome_função&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;parâmetros&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;instruções&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Implemente a função abaixo que imprime uma mensagem na tela.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - ola.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;ola&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Minha funcao em Python"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;ola&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A função está definida (&lt;strong&gt;&lt;em&gt;def&lt;/em&gt;&lt;/strong&gt;) na linha 01, com o nome &lt;strong&gt;&lt;em&gt;ola&lt;/em&gt;&lt;/strong&gt;. É uma função simples que imprime &lt;em&gt;“Minha funcao em Python”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Executamos uma função usando seu nome e parênteses, como ilustrado na linha 04.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - ola.py 
Minha funcao em Python
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetros de função (entrada)
&lt;/h3&gt;

&lt;p&gt;Se quisermos fornecer valores de entrada para uma função, definimos entre os parênteses os &lt;strong&gt;&lt;em&gt;parâmetros&lt;/em&gt;&lt;/strong&gt;.  Implemente o exemplo, que verifica se um número é par.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - ehPar.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; eh par"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; nao eh par"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2124&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 01 definimos a assinatura da função &lt;strong&gt;&lt;em&gt;isEven&lt;/em&gt;&lt;/strong&gt;. A &lt;strong&gt;assinatura do método&lt;/strong&gt; é representado pelo nome do método e os parâmetros de entrada.&lt;/p&gt;

&lt;p&gt;Nas linhas 07, 08 e 09, chamamos a função &lt;strong&gt;&lt;em&gt;isEven()&lt;/em&gt;&lt;/strong&gt; com diferentes argumentos: 4, 9, 2124. Chamamos de &lt;strong&gt;argumento&lt;/strong&gt; o valor do parâmetro de um método.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - ehPar.py 
4 eh par
9 nao eh par
2124 eh par
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Instrução &lt;strong&gt;&lt;em&gt;return&lt;/em&gt;&lt;/strong&gt; (saída)
&lt;/h3&gt;

&lt;p&gt;Uma função pode retornar valor através do uso da instrução &lt;strong&gt;&lt;em&gt;return&lt;/em&gt;&lt;/strong&gt;. Se uma instrução &lt;strong&gt;&lt;em&gt;return&lt;/em&gt;&lt;/strong&gt; é executada, a função é encerrada.&lt;/p&gt;

&lt;p&gt;Observe a função abaixo que executa uma operação aritmética e retorna o valor calculado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - calcula.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;calcula&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;'+'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;    
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;'-'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;'*'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s"&gt;'Operacao invalida'&lt;/span&gt;

&lt;span class="n"&gt;comando&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;comando&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s"&gt;"sair"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;comando&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Calcular (S-sim)? (Digite 'sair' para encerrar.): "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;comando&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"sair"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Saindo..."&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite o primeiro numero: "&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite o segundo numero: "&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
        &lt;span class="n"&gt;op&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite a operacao (+, -, *, /): "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;calcula&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;op&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linhas 01 a 11 temos uma função que calcula uma operação (&lt;strong&gt;&lt;em&gt;op&lt;/em&gt;&lt;/strong&gt;) entre dois números &lt;strong&gt;&lt;em&gt;x&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;y&lt;/em&gt;&lt;/strong&gt;. Os três parâmetros da função.&lt;/p&gt;

&lt;p&gt;Para cada operação executada, há uma cláusula &lt;strong&gt;&lt;em&gt;return&lt;/em&gt;&lt;/strong&gt;, linhas 03, 05, 07, 09, 11. Se o usuário selecionar a multiplicação, pela cláusula condicional, a linha 07 será executada e encerrará a função.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - calcula.py 
Calcular (S-sim)? (Digite 'sair' para encerrar.): s
Digite o primeiro numero: 12
Digite o segundo numero: 2
Digite a operacao (+, -, *, /): /
6.0
Calcular (S-sim)? (Digite 'sair' para encerrar.): s
Digite o primeiro numero: 33
Digite o segundo numero: 11
Digite a operacao (+, -, *, /): *
363
Calcular (S-sim)? (Digite 'sair' para encerrar.): sair
Saindo...
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No jargão da computação, as funções que não retornam valores são denominadas &lt;strong&gt;&lt;em&gt;procedimentos&lt;/em&gt;&lt;/strong&gt;. &lt;/p&gt;

&lt;p&gt;Em &lt;strong&gt;&lt;em&gt;Python&lt;/em&gt;&lt;/strong&gt; uma função que não retorna um valor explicitamente com o &lt;strong&gt;&lt;em&gt;return&lt;/em&gt;&lt;/strong&gt;, implicitamente retona &lt;strong&gt;&lt;em&gt;None&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - ehPar.py modificado
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; eh par"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; nao eh par"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;isEven()&lt;/em&gt;&lt;/strong&gt; não retorna valor, logo o valor da linha 07 será &lt;strong&gt;&lt;em&gt;None.&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - ehPar.py modificado
4 eh par
None
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Escopo de variáveis
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;Escopo de variável&lt;/em&gt;&lt;/strong&gt; é a região do código em que uma variável existe e pode ser utilizada. Em &lt;em&gt;Python&lt;/em&gt; temos o escopo &lt;strong&gt;local&lt;/strong&gt; e o &lt;strong&gt;global&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Variável local&lt;/strong&gt; é uma variável criada dentro de uma função, seu &lt;strong&gt;escopo é local&lt;/strong&gt;, ela existirá somente dentro da função.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Variável global&lt;/strong&gt; são as variáveis definidas fora de funções, possuem &lt;strong&gt;escopo global&lt;/strong&gt;, podem ser utilizadas em qualquer local do código.&lt;/p&gt;

&lt;p&gt;Desta forma, tenha em mente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Dentro de uma função podemos usar variáveis locais e &lt;em&gt;ler&lt;/em&gt; variáveis globais.&lt;/li&gt;
&lt;li&gt;Variáveis locais não podem ser usadas fora da função.&lt;/li&gt;
&lt;li&gt;Podemos ter variáveis locais e globais com o mesmo nome. Dentro de uma função as variáveis locais tem maior prioridade de uso.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Experimente os seguintes programas e entenda o escopo das variáveis.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - escopoGlobal.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;contador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A variável da linha 04, pode ser acessada dentro do método &lt;em&gt;imprime()&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - escopoGlobal.py
10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Não podemos acessar uma variável local fora do método.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - escopoLocalErro.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;contador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Neste exemplo a variável &lt;em&gt;contador&lt;/em&gt; é local (linha 02) e não pode ser acessada fora do escopo do método, como na linha 05.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - escopoLocalErro.py
Traceback (most recent call last):
  File "c:\Python\codes\escopoLocalErro.py", line 5, in &amp;lt;module&amp;gt;
    print(contador)
NameError: name 'contador' is not defined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Variáveis de diferentes escopos mas com mesmo nome possuem a prioridade de localização, se chamadas dentro de uma função, a variável local será acessada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - localEGlobal.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"valor em contador na funcao:"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;contador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"valor em contador no escopo global:"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;contador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Do exemplo anterior temos a variável &lt;em&gt;contador&lt;/em&gt; definida na linha 02 e na linha 05.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - localEGlobal.py
valor em contador na funcao: 10
valor em contador no escopo global: 5
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Palavra &lt;strong&gt;&lt;em&gt;global&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A palavra reservada &lt;strong&gt;&lt;em&gt;global&lt;/em&gt;&lt;/strong&gt; é aplicada na definição de variáveis de escopo global e permitem que o seu valor possa ser alterado dentro de funções.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe - global
&lt;/span&gt;&lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;nome_variavel&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Execute o código abaixo em seu ambiente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - usoGlobal.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;incrementa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;incremento&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;global&lt;/span&gt; &lt;span class="n"&gt;contador&lt;/span&gt;
    &lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
    &lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="n"&gt;incremento&lt;/span&gt;

&lt;span class="n"&gt;incrementa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"valor em contador depois da função:"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;contador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linha 02 definimos a variável &lt;strong&gt;&lt;em&gt;contador&lt;/em&gt;&lt;/strong&gt; como &lt;strong&gt;global&lt;/strong&gt;. Isto nos permite utilizá-lo em qualquer parte do código, inclusive fora da função como na linha 07 . A função &lt;strong&gt;&lt;em&gt;incrementa( )&lt;/em&gt;&lt;/strong&gt; recebe como parâmetro um valor &lt;strong&gt;&lt;em&gt;incremento&lt;/em&gt;&lt;/strong&gt; que será adicionado ao &lt;strong&gt;&lt;em&gt;contador&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Execução - usoGlobal.py
&lt;/span&gt;&lt;span class="n"&gt;valor&lt;/span&gt; &lt;span class="n"&gt;em&lt;/span&gt; &lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="n"&gt;depois&lt;/span&gt; &lt;span class="n"&gt;da&lt;/span&gt; &lt;span class="n"&gt;função&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Pilha de execução
&lt;/h2&gt;

&lt;p&gt;Funções podem ter como instruções a chamada para outras funções. A linguagem Python consegue memorizar a execução das funções através de uma estrutura denominada pilha de execução.&lt;/p&gt;

&lt;p&gt;Veja o exemplo abaixo, para efeitos didáticos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - multiplasFuncoes.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;funcaoA&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Funcao A"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;funcaoB&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Funcao B"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;funcaoA&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;funcaoC&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Funcao C"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;funcaoB&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Pilha de chamadas"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;funcaoC&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Inicio"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Fim"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Temos 4 funções no algoritmo: &lt;em&gt;funcaoA()&lt;/em&gt; (linha 01), &lt;em&gt;funcaoB()&lt;/em&gt; (linha 04), &lt;em&gt;funcaoC()&lt;/em&gt; (linha 08), &lt;em&gt;main()&lt;/em&gt; (linha 13).&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;funcaoA()&lt;/em&gt; imprime uma mensagem na tela, a &lt;em&gt;funcaoB()&lt;/em&gt; além de imprimir uma mensagem, chama a &lt;em&gt;funcaoA()&lt;/em&gt;. A &lt;em&gt;funcaoC()&lt;/em&gt; além de imprimir uma mensagem, executa a &lt;em&gt;funcaoB()&lt;/em&gt; e então imprime “Pilha de chamadas”.&lt;/p&gt;

&lt;p&gt;Na execução do algoritmo, chamamos a &lt;em&gt;main()&lt;/em&gt; (linha 17) que simplesmente executa a &lt;em&gt;funcaoC()&lt;/em&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Execução - multiplasFuncoes.py
&lt;/span&gt;&lt;span class="n"&gt;Inicio&lt;/span&gt;
&lt;span class="n"&gt;Funcao&lt;/span&gt; &lt;span class="n"&gt;C&lt;/span&gt;
&lt;span class="n"&gt;Funcao&lt;/span&gt; &lt;span class="n"&gt;B&lt;/span&gt;
&lt;span class="n"&gt;Funcao&lt;/span&gt; &lt;span class="n"&gt;A&lt;/span&gt;
&lt;span class="n"&gt;Pilha&lt;/span&gt; &lt;span class="n"&gt;de&lt;/span&gt; &lt;span class="n"&gt;chamadas&lt;/span&gt;
&lt;span class="n"&gt;Fim&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A linguagem cria uma pilha de chamadas, ilustrado abaixo, primeiro chamamos a função &lt;em&gt;main()&lt;/em&gt; no Passo 1, que executa a &lt;em&gt;funcaoC()&lt;/em&gt; (Passo 2) e coloca no topo da pilha.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;funcaoC()&lt;/em&gt; invoca a &lt;em&gt;funcaoB()&lt;/em&gt; (Passo 3) que por sua vez chama a &lt;em&gt;funcaoA( )&lt;/em&gt; (Passo 4), sendo colocados no topo da pilha em cada passo. Dos passos 5 ao passo 7, a linguagem executa os métodos do topo da pilha, primeiro a &lt;em&gt;funcaoA( )&lt;/em&gt;, depois a &lt;em&gt;funcaoB( )&lt;/em&gt; e finalmente a &lt;em&gt;funcaoC( )&lt;/em&gt; e &lt;em&gt;main( )&lt;/em&gt;, respectivamente.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
   &lt;td colspan="7"&gt;
&lt;code&gt;Pilha de execução&lt;/code&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoA()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoB()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoB()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoB()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoC()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoC()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoC()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoC()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;funcaoC()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
&lt;code&gt;main()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;main()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;main()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;main()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;main()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;main()&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;main()&lt;/code&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
&lt;code&gt;Passo 1&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 2&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 3&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 4&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 5&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 6&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 7&lt;/code&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Função recursiva
&lt;/h2&gt;

&lt;p&gt;Uma função é chamada &lt;strong&gt;recursiva&lt;/strong&gt; quando ela invoca a si própria em seu bloco de instrução.&lt;/p&gt;

&lt;p&gt;Para implementarmos uma função recursiva, é importante definirmos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O ponto de parada, ou caso base: condição que a função não chamará a sua execução recursiva.&lt;/li&gt;
&lt;li&gt;Execução recursiva: condição da execução recursiva.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Criar funções recursivas exige um pouco de experiência na programação, não se assuste se você não consegue neste momento implementar funções recursivas ou entender completamente os exemplos abaixo. Mas é importante saber que &lt;strong&gt;toda função recursiva pode ser escrita em uma forma não recursiva.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Nosso primeiro exemplo é implementar a operação da multiplicação &lt;strong&gt;&lt;em&gt;mult( )&lt;/em&gt;&lt;/strong&gt;, de números positivos, como função recursiva.&lt;/p&gt;

&lt;p&gt;Uma multiplicação de &lt;strong&gt;&lt;em&gt;x * y&lt;/em&gt;&lt;/strong&gt; pode ser implementada como a soma de &lt;strong&gt;&lt;em&gt;x&lt;/em&gt;&lt;/strong&gt; por &lt;strong&gt;&lt;em&gt;y&lt;/em&gt;&lt;/strong&gt; vezes ou soma de &lt;strong&gt;&lt;em&gt;y&lt;/em&gt;&lt;/strong&gt; por &lt;strong&gt;&lt;em&gt;x&lt;/em&gt;&lt;/strong&gt; vezes. Por exemplo: 3 * 2 = 3 + 3 ou 3 * 2 = 2 + 2 + 2.&lt;/p&gt;

&lt;p&gt;Como função recursiva, o caso base da multiplicação: qualquer número multiplicado por ZERO é ZERO, &lt;strong&gt;&lt;em&gt;mult(x, 0) = 0&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Como execução recursiva: &lt;strong&gt;&lt;em&gt;mult(x, y) = x + mult(x, y-1)&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - multRecursivo.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linhas 01-05 temos a função &lt;em&gt;mult(x, y)&lt;/em&gt; recebendo 2 parâmetros, e nas linhas 02-03 a condição base ou de parada e na linha 05 a chamada recursiva.&lt;/p&gt;

&lt;p&gt;Para a execução &lt;strong&gt;&lt;em&gt;mult(5, 3)&lt;/em&gt;&lt;/strong&gt; sua pilha de execução ficará como abaixo.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
   &lt;td colspan="7"&gt;
&lt;code&gt;Pilha de execução recursiva&lt;/code&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,0)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,1)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,1)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,1)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,2)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,2)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,2)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,2)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,2)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,3)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,3)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,3)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,3)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,3)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,3)&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;mult(5,3)&lt;/code&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
&lt;code&gt;Passo 1&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 2&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 3&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 4&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 5&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 6&lt;/code&gt;
   &lt;/td&gt;
   &lt;td&gt;
&lt;code&gt;Passo 7&lt;/code&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - multRecursivo.py
15
0
32
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
   &lt;td&gt;Agora é a sua vez!
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;Implemente o cálculo do fatorial de um número, positivo, de forma recursiva.
&lt;p&gt;
O fatorial de um número é definido como:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;fatorial(n) = n * (n-1) * (n-2) * 1.&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Por exemplo:
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;fatorial(5) = 5 * 4 * 3 * 2 * 1 = 120&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;fatorial(3) = 3 * 2 * 1 = 6&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;em&gt;fatorial(1) = 1&lt;/em&gt;
&lt;/p&gt;
&lt;p&gt;
Identifique o caso base e a chamada recursiva.
   &lt;/p&gt;
&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Criando seus próprios módulos
&lt;/h2&gt;

&lt;p&gt;Criar seus próprios módulos é bem simples, da mesma forma como outros programas em Python, você precisa salvar as suas funções em um arquivo &lt;strong&gt;&lt;em&gt;.py&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Vamos implementar o seguinte exemplo!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;implementar um módulo com 3 funções:

&lt;ul&gt;
&lt;li&gt;implementar uma função que gera uma lista de números randômicos, em um intervalo.&lt;/li&gt;
&lt;li&gt;implementar uma função que verifica se um número é par.&lt;/li&gt;
&lt;li&gt;implementar uma função que verifica se um número é primo.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;criar um programa que solicite ao usuário a quantidade de números que quer gerar e verificar se é um número par e se é primo.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para fins didáticos, salvei as funções em um módulo chamado &lt;strong&gt;&lt;em&gt;meuModulo&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Arquivo - meuModulo.py
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;random&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;isPrime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
                &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;False&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;generateRandomList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;lista&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;random&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;randint&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;lista&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em &lt;strong&gt;&lt;em&gt;meuModulo.py&lt;/em&gt;&lt;/strong&gt; temos 3 funções:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;isEven: verifica se um número é par, definido nas linhas 03 a 07.&lt;/li&gt;
&lt;li&gt;isPrime: verifica se um número é primo, ou seja, ele é divisível somente por 1 e por ele mesmo (linhas 09 a 18).&lt;/li&gt;
&lt;li&gt;generateRandomList: gera uma lista de tamanho &lt;em&gt;n&lt;/em&gt;, entre os valores 1 e &lt;em&gt;max. _O parâmetro _max&lt;/em&gt; é opcional, tem como valor padrão 100. É necessário importar o módulo random (linha 01).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para usarmos o nosso módulo, aplicamos a sintaxe &lt;em&gt;import&lt;/em&gt;, como dos exemplos anteriores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Arquivo - usoMeuModulo.py
&lt;/span&gt;&lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="nn"&gt;meuModulo&lt;/span&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;processa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;meuModulo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;isPrime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"é primo"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

        &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;meuModulo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"é par"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
            &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"é impar"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;n&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite quantidade de numeros a serem gerados: "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;lista&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;meuModulo&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;generateRandomList&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;int&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;n&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;processa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Em nosso programa importamos o &lt;em&gt;meuModulo&lt;/em&gt; (linha 01) e utilizamos suas funções nas linhas 05, 08, 14.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usoMeuModulo.py
Digite quantidade de numeros a serem gerados: 5
46 é par
4 é par
10 é par
15 é impar
37 é primo
37 é impar
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Outros recursos das funções
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Argumentos nomeados
&lt;/h3&gt;

&lt;p&gt;Vamos criar uma função que recebe o nome e a idade de uma pessoa, e imprime estas informações.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - nomeIdade.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Nome: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Idade: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"João"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Maria"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="c1"&gt;#passando parametros pela posicao
&lt;/span&gt;&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Zezim"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linhas 05 e 06 chamamos a função &lt;em&gt;informacoes(nome, idade)&lt;/em&gt; com os parâmetros na posição esperada.&lt;/p&gt;

&lt;p&gt;Como a função não executa nenhuma operação numérica com a idade, podemos cometer um erro e mudar a ordem dos parâmetros, como na linha 09. &lt;/p&gt;

&lt;p&gt;O código ainda irá executar.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - nomeIdade.py
Nome:  João
Idade:  20 
Nome:  Maria
Idade:  25
Nome:  45
Idade:  Zezim
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A forma como estamos passando os argumentos é denominada &lt;strong&gt;&lt;em&gt;posicional&lt;/em&gt;&lt;/strong&gt;. A posição do parâmetro determina o argumento associado.&lt;/p&gt;

&lt;p&gt;Python fornece outra forma de enviar os argumentos para uma função, usando o nome do parâmetro e o valor de argumento na forma chave-valor. É o denominado &lt;strong&gt;argumento nomeado&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Modifique o código acima e execute-o novamente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - nomeIdade.py modificado
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Nome: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Idade: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Maria"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;45&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Zezim"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linhas 05 e 06 estamos indicando o nome do parâmetro e o argumento associado. Desta forma os valores serão tratados corretamente na execução da função.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - nomeIdade.py modificado
Nome:  Maria
Idade:  25
Nome:  Zezim
Idade:  45
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Parâmetros opcionais
&lt;/h3&gt;

&lt;p&gt;Podemos definir um valor padrão para os parâmetros de uma função, desta forma não é obrigado fornecer valores na execução da função.&lt;/p&gt;

&lt;p&gt;Modifique o código &lt;strong&gt;&lt;em&gt;nomeIdade.py&lt;/em&gt;&lt;/strong&gt; novamente e observe a sintaxe de valor padrão.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - nomeIdade.py com valor padrão
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Nome: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Idade: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Maria"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 01 a idade possui um valor padão de 10, não é mais obrigatório fornecer a idade na chamada da função, como ilustrado na linha 05.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - nomeIdade.py com valor padrão
Nome:  Maria
Idade:  10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Podemos inclusive deixar todos os parâmetros com valores padrões.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - nomeIdade.py todos os parâmetros com valores
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Jose"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Nome: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Idade: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Maria"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observe a flexibilidade de usar parâmetros opcionais, nas linhas 05, 06 , 07.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - nomeIdade.py todos os parâmetros com valores
Nome:  Maria
Idade:  10
Nome:  20
Idade:  10
Nome:  Jose
Idade:  10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Número de argumentos indefinidos
&lt;/h3&gt;

&lt;p&gt;Podemos criar funções sem definir a quantidade de parâmetros, através da sintaxe abaixo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe - parâmetros indefinidos
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="err"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nf"&gt;funcao&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;nome_parametro&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O parâmetro &lt;strong&gt;é interpretado como uma tupla&lt;/strong&gt;. Implemente o exemplo seguinte.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - parametrosIndefinidos.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Executando o metodo: imprime"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;m&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;m&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Fim do metodo: imprime"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Ola"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Mundo"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Python"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Python"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Java"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"C++"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 01 definimos &lt;strong&gt;&lt;em&gt;mensagem&lt;/em&gt;&lt;/strong&gt; como um parâmetro que recebe múltiplos valores, e nas linhas 08 a 11 utilizamos a função com uma quantidade variada de parâmetros.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - parametrosIndefinidos.py
Executando o metodo: imprime
('Ola', 'Mundo')
Ola
Mundo
Fim do metodo: imprime

Executando o metodo: imprime
('Python',)
Python
Fim do metodo: imprime

Executando o metodo: imprime
('Python', 'Java', 'C++')
Python
Java
C++
Fim do metodo: imprime

Executando o metodo: imprime
()
Fim do metodo: imprime
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se utilizarmos “&lt;strong&gt;” em vez de somente “*”, o parâmetro **será interpretado como um dicionário&lt;/strong&gt; e poderá ter seus valores modificados. Você deve chamar a função com o formato &lt;strong&gt;&lt;em&gt;chave-valor&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Sintaxe - parâmetros indefinidos como dicionário
def &amp;lt;funcao&amp;gt;(**&amp;lt;nome_parametro&amp;gt;):
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - parametrosIndefinidosDic.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;criarpessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;**&lt;/span&gt;&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"nome"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;
    &lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"idade"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;informacoes&lt;/span&gt;

&lt;span class="n"&gt;pessoa&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;criarpessoa&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Maria"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;25&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cidade&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"São Paulo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;estado&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"SP"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;pessoa&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;criarpessoa()&lt;/em&gt;&lt;/strong&gt; utiliza a sintaxe **&lt;em&gt;informacoes&lt;/em&gt; como parâmetro, desta forma, dentro da função ele será interpretado como um dicionário.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - parametrosIndefinidosDic.py
{'cidade': 'São Paulo', 'estado': 'SP', 'nome': 'Maria', 'idade': 25}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Erros comuns
&lt;/h2&gt;

&lt;p&gt;Cuidado ao salvar o nome de seus programas e utilizar o nome de um módulo da linguagem. Como por exemplo &lt;strong&gt;&lt;em&gt;random.py&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Se você importar o módulo &lt;strong&gt;&lt;em&gt;random&lt;/em&gt;&lt;/strong&gt;, o interpretador utilizará o programa que você criou em vez de usar o módulo &lt;strong&gt;&lt;em&gt;random&lt;/em&gt;&lt;/strong&gt; da linguagem.&lt;/p&gt;

&lt;p&gt;Tome cuidado com os tipos de dados usados como parâmetros e forneça valores corretos, caso contrário teremos um erro no código.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - ehPar.py usando valores não numéricos
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; eh par"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;number&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt; nao eh par"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;isEven&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"4"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - ehPar.py usando valores não numéricos
Traceback (most recent call last):
  File "c:\Dropbox\Youtube\Python\codes\ehPar.py", line 7, in &amp;lt;module&amp;gt;
    isEven("4")
  File "c:\Dropbox\Youtube\Python\codes\ehPar.py", line 2, in isEven
    if (number % 2 == 0):
TypeError: not all arguments converted during string formatting
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Como desenvolvedor, ao implementar funções recursivas, seja cauteloso em garantir que a pilha de chamadas chegará no caso base, senão teremos uma pilha infinita de execução. Pense de forma análoga à criação de um &lt;strong&gt;&lt;em&gt;loop&lt;/em&gt;&lt;/strong&gt;, implementando a condição de parada.&lt;/p&gt;

&lt;p&gt;Teremos uma execução infinita se executarmos o &lt;strong&gt;&lt;em&gt;mult( )&lt;/em&gt;&lt;/strong&gt; com valor negativo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - multRecursivo.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;y&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mult&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - multRecursivo.py em loop infinito
Traceback (most recent call last):
  File "c:\Python\codes\multRecursiva.py", line 7, in &amp;lt;module&amp;gt;
    print(mult(2, -1))
  File "c:\Python\codes\multRecursiva.py", line 5, in mult
    return x + mult(x, y - 1)
  File "c:\Python\codes\multRecursiva.py", line 5, in mult
    return x + mult(x, y - 1)
  File "c:\Python\codes\multRecursiva.py", line 5, in mult
    return x + mult(x, y - 1)
  [Previous line repeated 995 more times]
  File "c:\Python\codes\multRecursiva.py", line 2, in mult
    if y == 0:
RecursionError: maximum recursion depth exceeded in comparison
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Lembre-se que variáveis locais não podem ser acessadas fora da função onde foram definidas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - escopoLocalErro.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;contador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - escopoLocalErro.py
Traceback (most recent call last):
  File "c:\Python\codes\escopoLocalErro.py", line 5, in &amp;lt;module&amp;gt;
    print(contador)
NameError: name 'contador' is not defined
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E não podemos alterar o valor de variáveis globais que não são explicitamente marcadas com a palavra &lt;strong&gt;&lt;em&gt;global&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - globalErro.py
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;contador&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;contador&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="n"&gt;imprime&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - globalErro.py
Traceback (most recent call last):
  File "c:\Python\codes\escopoGlobal.py", line 6, in &amp;lt;module&amp;gt;
    imprime()
  File "c:\Python\codes\escopoGlobal.py", line 2, in imprime
    contador += 100
UnboundLocalError: local variable 'contador' referenced before assignment
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os parâmetros opcionais devem sempre ser definidos após os parâmetros obrigatórios. O código abaixo não executa.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - erro no uso de parâmetros opcionais
&lt;/span&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"Jose"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Nome: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Idade: "&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;idade&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;informacoes&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Maria"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - erro no uso de parâmetros opcionais
  File "c:\codes\nomeIdade.py", line 1
    def informacoes(nome = "Jose", idade):
                                   ^^^^^
SyntaxError: non-default argument follows default argument
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Lista de Exercícios 06 - Laços de Repetição #15</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Tue, 12 Jul 2022 23:05:01 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/lista-de-exercicios-06-lacos-de-repeticao-15-2hh3</link>
      <guid>https://dev.to/jcarlosvale/lista-de-exercicios-06-lacos-de-repeticao-15-2hh3</guid>
      <description>&lt;p&gt;Q1. Escreva um programa que:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crie uma lista vazia - &lt;strong&gt;&lt;em&gt;cores&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;solicite ao usuário que digite suas 3 cores preferidas, e armazene na lista - utilize um laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; e o método &lt;strong&gt;&lt;em&gt;append()&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;imprima a mensagem “A pizza &amp;lt;nome_pizza&amp;gt; é uma das minhas pereferidas.” - use o método &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; de percorrer listas.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q2. Usando a função &lt;strong&gt;&lt;em&gt;range( )&lt;/em&gt;&lt;/strong&gt;, imprima os múltiplos de 3 entre 12 e 82.&lt;/p&gt;

&lt;p&gt;Q3. Crie uma lista com 1 milhão de números, do número 1 ao 1.000.000, e imprima o menor número (que deve ser 1) e o maior número (que deve ser 1.000.000). Finalmente, imprima a soma de todos os números. Use o &lt;strong&gt;&lt;em&gt;range()&lt;/em&gt;&lt;/strong&gt; para gerar a lista e as funções &lt;strong&gt;&lt;em&gt;sum(), max(), min().&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Q4. Crie um programa que solicite ao usuário o nome de cada cidade que ele já visitou, armazenando em uma lista, até ele digitar “sair”. Após ele digitar “sair”, imprima na tela a lista de cidades digitadas.&lt;/p&gt;

&lt;p&gt;Q5. O preço de ingresso de um cinema depende da idade da pessoa. Se uma pessoa é menor do que 3 anos, o ingresso é grátis; se a idade está entre 3 e 12, o ingresso custa $10; e se a idade é maior que 12 anos, o ingresso será $15. Escreva um laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; que solicita a idade do usuário e então informa o preço do ingresso. Implemente a forma de sair do laço.&lt;/p&gt;

&lt;p&gt;Q6. Modifique o programa anterior. Solicite que o usuário informe a quantidade de ingressos que irá comprar, informe para cada ingresso a idade da pessoa e finalmente imprima o valor total da compra dos ingressos.&lt;/p&gt;

&lt;p&gt;Q7. Implemente o seguinte programa:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crie uma lista &lt;strong&gt;&lt;em&gt;entrada&lt;/em&gt;&lt;/strong&gt; com 5 elementos do tipo &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;imprima na tela a lista &lt;strong&gt;&lt;em&gt;entrada&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;usando um laço &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;, enquanto a &lt;strong&gt;_entrada _&lt;/strong&gt; não estiver vazia:

&lt;ul&gt;
&lt;li&gt;remova cada elemento com o método &lt;strong&gt;&lt;em&gt;pop&lt;/em&gt;&lt;/strong&gt; &lt;/li&gt;
&lt;li&gt;salve o elemento removido em uma lista &lt;strong&gt;&lt;em&gt;saida&lt;/em&gt;&lt;/strong&gt; com o método &lt;strong&gt;&lt;em&gt;append&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;li&gt;

&lt;p&gt;imprima a lista &lt;strong&gt;&lt;em&gt;saida&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Compare a lista &lt;strong&gt;&lt;em&gt;entrada&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;saida&lt;/em&gt;&lt;/strong&gt;, o que você notou?&lt;/p&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q8. Dada a seguinte lista:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;linguagens = ['python', 'java', 'python', 'javascript', 'java', 'c++', 'java']
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Crie um algoritmo que remova a palavra ‘java’.&lt;/p&gt;

&lt;p&gt;Q9. Imprimir os 100 primeiros pares.&lt;/p&gt;

&lt;p&gt;Q10. Crie um algoritmo que leia 2 variáveis inteiras: variável n maior do que 1 e o valor de b maior ou igual a 2.&lt;/p&gt;

&lt;p&gt;Calcule “b elevado a n”, isto é, b * b * b …* b (n vezes).&lt;/p&gt;

&lt;p&gt;Q11. Crie um progama que leia “n” números inteiros e imprima o maior e o menor deles. O valor de “n” pode ser fornecido pelo usuário.&lt;/p&gt;

&lt;p&gt;Q12. Crie um algoritmo que imprima os 10 primeiros termos da série de Fibonnaci. Ela é definida como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;o primeiro e o segundo termo é o valor 1&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;o termo seguinte é sempre a soma dos 2 anteriores.&lt;/p&gt;

&lt;p&gt;Série de Fibonnaci: 1 1 2 3 5 8 …&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q13. Entrar com um número e imprimir todos os seus divisores.&lt;/p&gt;

&lt;p&gt;Q14. Entrar com oito nomes e imprimir quantas letras tem cada nome.&lt;/p&gt;

&lt;p&gt;Q15. Crie um algoritmo que entre com uma palavra e imprima conforme o exemplo a seguir:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    palavra: AMOR


impressão:
                A
                AM
                AMO
                AMOR
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Q16. Crie um algoritmo que entre com uma palavra e imprima conforme o exemplo a seguir:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    palavra: AMOR

impressão:
                AMOR
                AMO
                AM
                A
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Q17. Crie um algoritmo que entre com uma palavra e imprima conforme o exemplo a seguir:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    palavra: TERRA

impressão:
                A
                RA
                RRA
                ERRA
                TERRA
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Q18. Crie um algoritmo que entre com uma palavra e imprima conforme o exemplo a seguir:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;    palavra: TERRA

impressão:
                TERRA
                ERRA
                RRA
                RA
                A
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Q19. Ler o número de termos da série &lt;em&gt;n&lt;/em&gt; e imprimir o valor de H como:&lt;br&gt;
    H = 1 + ½ + ⅓ + ¼ + …+1/n&lt;/p&gt;

&lt;p&gt;Q20. Ler o número de termos da série &lt;em&gt;n&lt;/em&gt; e imprimir o valor de H como:&lt;br&gt;
    H = 1 - ½ + ⅓ - ¼ + …+1/n&lt;/p&gt;

&lt;p&gt;Q21. Chico tem 1,50m e cresce 2 centímetros por ano, enquanto Juca tem 1, 1m e cresce 3 centímetros por ano. Construir um algoritmo que calcule e imprima quantos anos serão necessários para que Juca seja maior que Chico.&lt;/p&gt;

&lt;p&gt;Q22. Entrar com um número e verificar se ele é um número primo.&lt;/p&gt;

&lt;p&gt;Q23. Entrar com um número e verificar se ele é um número triangulas. Um número é triangular quando é resultado do produto de três números consecutivos. Exemplo: 24 = 2 * 3 * 4.&lt;/p&gt;

&lt;p&gt;Q24. Uma das maneiras de se conseguira raiz quadrada de um número é subtrair do número os ímpares consecutivos a partir de 1, até que o resultado da subtração seja menor ou igual a zero. O número de vezes que se conseguir fazer a subtração é a raiz quadrada exata (resultado O) ou aproximada do número (resultado negativo).&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Exemplo: 

    Raiz de 16
    16-1=15-3=12-5=7-7=0

    Resultado 4, porque foram 4 subtrações.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>Laços de Repetição - #14</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Tue, 12 Jul 2022 23:04:01 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/lacos-de-repeticao-14-2ph6</link>
      <guid>https://dev.to/jcarlosvale/lacos-de-repeticao-14-2ph6</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/lHlznUnmCTs"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Estruturas de repetição
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Sintaxe &lt;em&gt;while&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;A cláusula de repetição &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; permite que um bloco de código seja executado, repetidamente, enquanto a condição for verdadeira (&lt;strong&gt;&lt;em&gt;True&lt;/em&gt;&lt;/strong&gt;). Sua sintaxe contem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;palavra reservada &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;uma &lt;em&gt;condição&lt;/em&gt; ou &lt;em&gt;expressão booleana&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;dois pontos (&lt;em&gt;:&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;bloco de código indentado (4 espaços), a ser executado se a condição &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; é &lt;strong&gt;&lt;em&gt;True&lt;/em&gt;&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe while
&lt;/span&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;condição&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;instruções&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Algoritmo para imprimir os números de 1 a 10:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - imprimir de 1 a 10
&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 02 temos a instrução &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; com a condição de que enquanto o valor da variável &lt;em&gt;num&lt;/em&gt; for menor ou igual a 10, as instruções das linhas 03 e 04 serão executadas. Note a indentação ou os 4 espaços necessários para identificar as instruções que serão executadas repetidamente.&lt;/p&gt;

&lt;p&gt;Quando trabalhamos com o bloco &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; é importante controlamos a cláusula condicional, para que ela se torne falsa (&lt;strong&gt;&lt;em&gt;False&lt;/em&gt;&lt;/strong&gt;) e finalize a execução do seu laço. Caso contrário teremos um &lt;strong&gt;&lt;em&gt;loop&lt;/em&gt;&lt;/strong&gt; infinito, seu código nunca terminará de executar.&lt;/p&gt;

&lt;p&gt;Chamamos de &lt;strong&gt;&lt;em&gt;iteração&lt;/em&gt;&lt;/strong&gt; cada vez que o laço ou o bloco de código é executado. Do exemplo anterior, o laço possui 10 iterações, e antes que cada iteração seja executada, a cláusula condicional é avaliada.&lt;/p&gt;

&lt;p&gt;Veja o exemplo de um &lt;strong&gt;&lt;em&gt;loop&lt;/em&gt;&lt;/strong&gt; que não se encerra enquanto o usuário não digita a palavra &lt;strong&gt;&lt;em&gt;Python&lt;/em&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - qual linguagem? (qualLinguagem.py)
&lt;/span&gt;&lt;span class="n"&gt;linguagem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;linguagem&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s"&gt;"Python"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Qual linguagem estamos estudando? "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;linguagem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Parabens! Voce acertou!"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 01 iniciamos uma variável do tipo &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt; com valor em branco. Na linha 02, iniciamos o nosso bloco &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;, que executará o bloco de código das linhas 03 e 04, enquanto o valor da variável &lt;em&gt;linguagem&lt;/em&gt; não é &lt;em&gt;Python&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Somente quando o bloco de repetição for finalizado (quando o usuário digitar &lt;em&gt;Python&lt;/em&gt;), a linha 05 será executada.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Exemplo - execução de qualLinguagem.py 
Qual linguagem estamos estudando?
c
Qual linguagem estamos estudando?
C++
Qual linguagem estamos estudando?
Java
Qual linguagem estamos estudando?
python
Qual linguagem estamos estudando?
Python
Parabens! Voce acertou!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Atribuição composta
&lt;/h2&gt;

&lt;p&gt;A atribuição composta é uma forma simplificada de reutilizar a mesma variável nas operações aritméticas, como por exemplo +=, -=, *=, /=. &lt;/p&gt;

&lt;p&gt;A expressão 2, abaixo, é a simplificação da expressão 1.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Exemplo - sintaxe atribuição composta
#expressão 1
num = num + 5;

#expressão 2
num += 5;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Experimente algumas atribuições compostas no &lt;strong&gt;&lt;em&gt;shell&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Atribuição composta no shell
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;10&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;15&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;*=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;30&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;%=&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;0&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Vamos a outro exemplo, é comum o uso do laço &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; para deixar um programa executando até que o usuário digite algum valor para sair e finalizar a execução.&lt;/p&gt;

&lt;p&gt;No exemplo abaixo, enquanto o usuário não digitar &lt;strong&gt;&lt;em&gt;sair&lt;/em&gt;&lt;/strong&gt;, o programa continuará executando, irá imprimir na tela o que o usuário digitou.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - executeDigiteSair.py
&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt; Digite 'sair' para encerrar o programa"&lt;/span&gt;
&lt;span class="n"&gt;texto&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt; Digite alguma mensagem: "&lt;/span&gt;

&lt;span class="n"&gt;mensagem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;

&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;mensagem&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="s"&gt;"sair"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;mensagem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mensagem&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Criamos 2 variáveis, a variável &lt;em&gt;texto&lt;/em&gt; para imprimir uma mensagem padrão ao usuário e a variável &lt;em&gt;mensagem&lt;/em&gt; que receberá o valor digitado pelo usuário.&lt;/p&gt;

&lt;p&gt;Observe o uso do “\n” para escrever em uma nova linha, e o uso do “+=” nas linhas 01 e 02.&lt;/p&gt;

&lt;p&gt;Na linha 06 temos nosso laço principal, enquanto o valor de &lt;em&gt;mensagem&lt;/em&gt; não for &lt;em&gt;“sair”&lt;/em&gt;, o &lt;strong&gt;&lt;em&gt;texto&lt;/em&gt;&lt;/strong&gt; será mostrado e o usuário deverá digitar algo que será impresso na tela.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - executeDigiteSair.py 
 Digite 'sair' para encerrar o programa
 Digite alguma mensagem: Alguma coisa
Alguma coisa

 Digite 'sair' para encerrar o programa
 Digite alguma mensagem: teste
teste

 Digite 'sair' para encerrar o programa
 Digite alguma mensagem: sair
sair
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sintaxe &lt;em&gt;for&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;O laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; é uma estrutura de repetição alternativa ao laço &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;. Ele geralmente é aplicado quando já sabemos a quantidade de interação que vamos executar.&lt;/p&gt;

&lt;p&gt;Sua sintaxe contem:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;palavra reservada &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;um nome de variável&lt;/li&gt;
&lt;li&gt;a palavra reservada &lt;strong&gt;&lt;em&gt;in&lt;/em&gt;&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;a chamada da função &lt;strong&gt;&lt;em&gt;range&lt;/em&gt;&lt;/strong&gt; que pode receber até três argumentos ou valores&lt;/li&gt;
&lt;li&gt;dois pontos (&lt;em&gt;:&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;bloco de código indentado (4 espaços),  a ser executado enquanto  a &lt;em&gt;condição&lt;/em&gt; é &lt;strong&gt;&lt;em&gt;True&lt;/em&gt;&lt;/strong&gt;.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Sintaxe for
for &amp;lt;variavel&amp;gt; in range(&amp;lt;valor 1&amp;gt;, &amp;lt;valor 2&amp;gt;, &amp;lt;valor 3&amp;gt;):
    instruções
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Algoritmo para imprimir os números de 1 a 10:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - imprimir de 1 a 10 usando for
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para imprimirmos de 1 a 10 usando o &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; (linha 01), basta definirmos uma variável &lt;strong&gt;&lt;em&gt;num&lt;/em&gt;&lt;/strong&gt; que irá variar no intervalo de 10 (&lt;strong&gt;&lt;em&gt;range(10)&lt;/em&gt;&lt;/strong&gt;). A função &lt;strong&gt;&lt;em&gt;range&lt;/em&gt;&lt;/strong&gt; gerará números de ZERO a 9, por isso foi necessário na linha 02 somar o valor de &lt;strong&gt;&lt;em&gt;num&lt;/em&gt;&lt;/strong&gt; com 1.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instruções &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;As instruções &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt; são palavras reservadas que só podem ser utilizadas dentro de laços de repetição. &lt;/p&gt;

&lt;h3&gt;
  
  
  Instrução &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A instrução &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt; quando é executada, encerra a execução de um laço de repetição. Quando o intepretador &lt;em&gt;Python&lt;/em&gt; encontra um comando &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt;, automaticamente ele sairá de dentro do &lt;strong&gt;&lt;em&gt;loop&lt;/em&gt;&lt;/strong&gt; e continuará a execução normal do programa.&lt;/p&gt;

&lt;p&gt;O exemplo abaixo irá imprimir somente até o número 7:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - imprimir de 1 a 10 modificado com break
&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="mi"&gt;7&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;
    &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Veja que o condicional do &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; é verdadeiro enquanto o &lt;em&gt;num&lt;/em&gt; é menor ou igual a 10 (linha 02). Na linha 04 se o &lt;em&gt;num&lt;/em&gt; é igual a 7, o comando &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt; será executado e encerrará a execução do &lt;strong&gt;&lt;em&gt;loop&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Também usando o &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt;, podemos implementar outra solução para o problema &lt;strong&gt;&lt;em&gt;qual linguagem&lt;/em&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - qual linguagem com break
&lt;/span&gt;&lt;span class="n"&gt;linguagem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Qual linguagem estamos estudando? "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;linguagem&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;linguagem&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;"Python"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;É muito comum encontrarmos algoritmos com uma condição &lt;em&gt;infinita (while True)&lt;/em&gt;, como do exemplo acima, mas no bloco de instruções temos o &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt; para encerrar a execução do laço.&lt;/p&gt;

&lt;h3&gt;
  
  
  Instrução &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Da mesma forma que a instrução &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt;, a instrução &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt; deve estar dentro de um laço de repetição.&lt;/p&gt;

&lt;p&gt;Quando uma instrução &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt; é encontrada, a execução da interação corrente é interrompida e a próxima interação executada.&lt;/p&gt;

&lt;p&gt;Podemos imprimir os números múltiplos de 5 entre 1 e 30, usando o &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - múltiplos de 5 entre 1 e 30
&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt; &lt;span class="o"&gt;!=&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
        &lt;span class="k"&gt;continue&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O algoritmo acima não é a única e nem a melhor forma de se imprimir os múltiplos de 5, mas foi escrito para explorarmos a sintaxe do &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt; da linha 05.&lt;/p&gt;

&lt;p&gt;Na linha 01 inicializamos uma variável numérica &lt;strong&gt;&lt;em&gt;num&lt;/em&gt;&lt;/strong&gt; com valor ZERO e enquanto esta variável possuir o valor menor ou igual a 30 (bloco &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; - linhas 02 a 06), ela será incrementada de 1 unidade e na linha 04 se o resto da divisão for diferente de ZERO, a instrução &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt; será executada. A instrução &lt;strong&gt;&lt;em&gt;continue&lt;/em&gt;&lt;/strong&gt; sendo executada, automaticamente a linha 06 não será chamada (número não será impresso) e o laço executará a próxima iteração.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - múltiplos de 5 entre 1 e 30 
5
10
15
20
25
30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Função &lt;strong&gt;&lt;em&gt;range( )&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Chamamos de &lt;strong&gt;&lt;em&gt;argumento&lt;/em&gt;&lt;/strong&gt; os valores que passamos para uma função. &lt;/p&gt;

&lt;p&gt;Vimos que algumas funções não possuem argumentos, como o caso da função &lt;strong&gt;&lt;em&gt;input( )&lt;/em&gt;&lt;/strong&gt; que espera algo ser digitado no teclado do computador, e outras que recebem um parâmetro como as funções &lt;strong&gt;&lt;em&gt;print&lt;/em&gt;&lt;/strong&gt;(‘Texto’) ou as funções &lt;strong&gt;&lt;em&gt;str(valor), int(texto)&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;range&lt;/em&gt;&lt;/strong&gt; utilizado nos laços de repetição &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;, pode receber &lt;strong&gt;até 3 argumentos&lt;/strong&gt;, representando:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;ponto de início do laço (inclusivo)&lt;/li&gt;
&lt;li&gt;ponto final do laço (exclusivo)&lt;/li&gt;
&lt;li&gt;incremento da iteração
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Sintaxe range
range(argumento1, argumento2, argumento3)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Sintaxe &lt;em&gt;range(argumento 1)&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;range( )&lt;/em&gt;&lt;/strong&gt; quando possui somente 1 argumento, o utilizará como ponto final do laço, não incluindo o valor.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - usando range com um argumento
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O laço iniciará do valor ZERO e o incremento será de 1 unidade.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usando range com um argumento 
0
1
2
3
4
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Note que o argumento é o valor 5 (linha 01) mas ele não será utilizado, o &lt;strong&gt;&lt;em&gt;range&lt;/em&gt;&lt;/strong&gt; será de ZERO a 4.&lt;/p&gt;

&lt;h3&gt;
  
  
  Sintaxe &lt;em&gt;range(argumento 1, argumento 2)&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Quando usamos 2 argumentos na função &lt;strong&gt;&lt;em&gt;range( )&lt;/em&gt;&lt;/strong&gt;, o primeiro argumento será o valor inicial e o segundo argumento o valor final não incluso da interação.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - usando range com dois argumentos
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Novamente o incremento será de 1 unidade.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usando range com dois argumentos 
20
21
22
23
24
25
26
27
28
29
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o &lt;strong&gt;&lt;em&gt;range(20, 30)&lt;/em&gt;&lt;/strong&gt; serão impressos os valores de 20 a 29. O número 30 não é incluído.&lt;/p&gt;

&lt;p&gt;Se você possuir um &lt;strong&gt;&lt;em&gt;range&lt;/em&gt;&lt;/strong&gt; decrescente, com 2 argumentos, não haverá execução do laço.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
   &lt;td&gt;Agora é a sua vez!
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;Reescreva o algoritmo “&lt;strong&gt;&lt;em&gt;usando range com dois argumentos”&lt;/em&gt; &lt;/strong&gt;utilizando um &lt;strong&gt;&lt;em&gt;range(30, 20)&lt;/em&gt;&lt;/strong&gt;.
&lt;p&gt;
O que acontece na execução? Você receberá algum erro?
&lt;/p&gt;
&lt;p&gt;
Experimente!
   &lt;/p&gt;
&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  Sintaxe &lt;em&gt;range(argumento 1, argumento 2, argumento 3)&lt;/em&gt;
&lt;/h3&gt;

&lt;p&gt;Na sintaxe completa da função &lt;strong&gt;&lt;em&gt;range( )&lt;/em&gt;&lt;/strong&gt; recebendo 3 argumentos, teremos o argumento 1 como ponto inicial, o argumento 2 como valor final exclusivo e o argumento 3 será o incremento em cada iteração.&lt;/p&gt;

&lt;p&gt;Para entendermos, veja o exemplo abaixo imprimindo os valores de 0 a 30, de 5 em 5:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - usando range com trê argumentos
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;31&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o terceiro argumento igual a 5, o incremento será de 5 unidades.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usando range com três argumentos 
0
5
10
15
20
25
30
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;O argumento de valor de iteração é flexível, aceitando valores negativos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - usando range com trê argumentos, negativo
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;i&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;i&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Com o terceiro argumento igual a -5, o incremento será subtraindo 5 unidades. Ou seja, com valores negativos, teremos um decremento.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usando range com três argumentos, negativo
30
25
20
15
10
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Gerando listas numéricas com &lt;strong&gt;&lt;em&gt;range()&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;&lt;em&gt;range()&lt;/em&gt;&lt;/strong&gt; pode ser utilizado para gerar listas numéricas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe range para gerar listas
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;arg1&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;arg2&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;arg3&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="n"&gt;arg2&lt;/span&gt; &lt;span class="n"&gt;e&lt;/span&gt; &lt;span class="n"&gt;arg3&lt;/span&gt; &lt;span class="n"&gt;são&lt;/span&gt; &lt;span class="n"&gt;opcionais&lt;/span&gt; &lt;span class="n"&gt;no&lt;/span&gt; &lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Veja alguns exemplos usando o &lt;strong&gt;&lt;em&gt;range()&lt;/em&gt;&lt;/strong&gt; na criação de listas, &lt;span&gt;o código abaixo não consegue ser executado no &lt;strong&gt;&lt;em&gt;shell&lt;/em&gt;&lt;/strong&gt;&lt;/span&gt;, você precisa criar o arquivo &lt;strong&gt;&lt;em&gt;.py&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - gerarListas.py
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Exemplo 01"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;lista&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;5&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Exemplo 02"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;lista&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Exemplo 03"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="n"&gt;lista&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;range&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;30&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;41&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - gerarListas.py
Exemplo 01
[0, 1, 2, 3, 4]
Exemplo 02
[10, 11, 12, 13, 14]
Exemplo 03
[30, 32, 34, 36, 38, 40]
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Funções &lt;strong&gt;&lt;em&gt;max(), min(), sum()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Com listas numéricas, podemos aplicar algumas funções úteis da linguagem, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;max()&lt;/em&gt;&lt;/strong&gt;, retorna o maior número da lista.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;min()&lt;/em&gt;&lt;/strong&gt;, retorna o menor número da lista.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;sum()&lt;/em&gt;&lt;/strong&gt;, retorna a soma dos números da lista.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Execução - max(), min(), sum() no shell
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;numeros&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;4&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;max&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numeros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;8&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;min&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numeros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;numeros&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Percorrendo listas com &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Agora que sabemos o laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;, podemos utilizá-lo para acessar cada elemento de uma lista.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe for para percorrer listas
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;variavel_item&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;lista&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;instruções&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - imprimindo elementos de uma lista
#Imprime cada elemento de uma lista e calcula seu dobro
&lt;/span&gt;&lt;span class="n"&gt;lista_numeros&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lista_numeros&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Elemento: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"O dobro: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 01 temos um comentário indicando a funcionalidade do algoritmo, que define uma lista de números (linha 02), e no laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;, percorre cada item da lista e usa a variável &lt;strong&gt;&lt;em&gt;num&lt;/em&gt;&lt;/strong&gt; para armazená-los.&lt;/p&gt;

&lt;p&gt;As instruções das linhas 04 e 05 pertencem ao bloco &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;, identificados pela identação ou 4 espaços, e imprimem o valor de &lt;strong&gt;&lt;em&gt;num&lt;/em&gt;&lt;/strong&gt; (linha 04) e o seu dobro (linha 05).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - imprimindo elementos de uma lista 
Elemento: 6
O dobro: 12
Elemento: -20
O dobro: -40
Elemento: 12
O dobro: 24
Elemento: 1
O dobro: 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também é possível usar o laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; e percorrer &lt;strong&gt;sublistas&lt;/strong&gt;. Por exemplo, dada uma lista de nomes, imprima os 3 primeiros e os 3 últimos elementos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - top3.py
&lt;/span&gt;&lt;span class="n"&gt;ranking&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Jose"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Maria"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Igor"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Paulo"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Laura"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Andre"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Alex"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Top 3: "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ranking&lt;/span&gt;&lt;span class="p"&gt;[:&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Last 3: "&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;ranking&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;:]&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linhas 04 e 09 usamos a sintaxe de sublistas para ler os elementos, também observe o &lt;strong&gt;&lt;em&gt;“\t”&lt;/em&gt;&lt;/strong&gt; para inserir 4 espaços na impressão da tela.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - top3.py 
Top 3: 
    Joao
    Jose
    Maria
Last 3: 
    Laura
    Andre
    Alex
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Usando função &lt;strong&gt;&lt;em&gt;enumerate()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A função &lt;strong&gt;&lt;em&gt;enumerate()&lt;/em&gt;&lt;/strong&gt; retorna o índice e o item da lista.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - exemploEnumerate.py
&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"branco"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"vermelho"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;indice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cor&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="nb"&gt;enumerate&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cor&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;indice&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;cor&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - exemploEnumerate.py 
0 preto
1 branco
2 vermelho
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Preenchendo listas com &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Podemos usar uma lista &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt; para preencher uma lista com valores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - listaAmigos.py
&lt;/span&gt;&lt;span class="n"&gt;amigos&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="bp"&gt;True&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Digite o nome do amigo "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;amigos&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;
            &lt;span class="s"&gt;" ou enter para sair:"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;input&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;name&lt;/span&gt; &lt;span class="o"&gt;==&lt;/span&gt; &lt;span class="s"&gt;""&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;break&lt;/span&gt;  
    &lt;span class="n"&gt;amigos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Lista de amigos:"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;amigo&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;amigos&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\t&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;amigo&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No algoritmo anterior, preenchemos a lista &lt;strong&gt;&lt;em&gt;amigos&lt;/em&gt;&lt;/strong&gt; enquanto o usuário fornece algum valor. Através do uso do laço &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;, pedimos ao usuário que forneça o nome de um amigo, e no laço condicional da linha 06, se o valor for vazio, executamos o &lt;strong&gt;&lt;em&gt;break&lt;/em&gt;&lt;/strong&gt; e saímos do laço &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Finalmente na linha 09, fora do bloco de repetição, imprimimos na tela a lista de amigos.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - listaAmigos.py 
Digite o nome do amigo 1 ou enter para sair:
Amigo 1
Digite o nome do amigo 2 ou enter para sair:
Joao
Digite o nome do amigo 3 ou enter para sair:
Lara
Digite o nome do amigo 4 ou enter para sair:
Paula
Digite o nome do amigo 5 ou enter para sair:

Lista de amigos:
        Amigo 1
        Joao
        Lara
        Paula
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Erros comuns
&lt;/h2&gt;

&lt;p&gt;Cuidado com &lt;strong&gt;&lt;em&gt;loops&lt;/em&gt;&lt;/strong&gt; infinitos, situação em que seu código nunca terminará de executar. &lt;/p&gt;

&lt;p&gt;Veja o exemplo abaixo, usando o laço &lt;strong&gt;&lt;em&gt;while&lt;/em&gt;&lt;/strong&gt;, no qual a variável &lt;strong&gt;&lt;em&gt;num&lt;/em&gt;&lt;/strong&gt; nunca é atualizado, e nunca será maior que 10:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - imprimir de 1 a 10 em loop infinito
&lt;/span&gt;&lt;span class="mi"&gt;01&lt;/span&gt;
&lt;span class="mi"&gt;02&lt;/span&gt;
&lt;span class="mi"&gt;03&lt;/span&gt;
&lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Se você executar o código acima, seu programa irá imprimir o número 1 infinitamente. Para forçar o encerramento do programa, você deve digitar &lt;em&gt;CTRL + C&lt;/em&gt; ou &lt;em&gt;CTRL + Z&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;A indentação continua importante, as instruções são identificadas através dos 4 espaços do bloco. O algoritmo abaixo é executado mas com o comportamento diferente do esperado, a linha 05 não pertence ao bloco &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Algoritmo - indentação incorreta
#Imprime cada elemento de uma lista e calcula seu dobro
&lt;/span&gt;&lt;span class="n"&gt;lista_numeros&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;6&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;12&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lista_numeros&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Elemento: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"O dobro: "&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="n"&gt;num&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - indentação incorreta
Elemento: 6
Elemento: -20
Elemento: 12
Elemento: 1
O dobro: 2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;E não esqueça dos “:” da sintaxe.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Erro de sintaxe - faltando os “:”
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lista_nomes&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;stdin&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;
    &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;lista_nomes&lt;/span&gt;
                        &lt;span class="o"&gt;^&lt;/span&gt;
&lt;span class="nb"&gt;SyntaxError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;expected&lt;/span&gt; &lt;span class="s"&gt;':'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Lista de Exercícios 05 - Dicionários #13</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Tue, 12 Jul 2022 23:03:43 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/lista-de-exercicios-05-dicionarios-13-1eck</link>
      <guid>https://dev.to/jcarlosvale/lista-de-exercicios-05-dicionarios-13-1eck</guid>
      <description>&lt;p&gt;Q1. Solicite os seguintes campos de um usuário: &lt;strong&gt;&lt;em&gt;nome, idade, sexo, altura&lt;/em&gt;&lt;/strong&gt;. Armazene em um mapa e depois imprima as informações fornecidas na tela.&lt;/p&gt;

&lt;p&gt;Q2. Crie um dicionário com os 3 maiores rios do mundo e seus países. Por exemplo &lt;em&gt;“nile”: “egito”&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;imprima cada chave, valor como: “O Nilo corta o Egito”;&lt;/li&gt;
&lt;li&gt;imprima cada rio em um laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;imprima cada país do dicionário em um laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q3. Utilizando dicionários e listas, modele um programa que armazena o nome de uma pessoa e para cada pessoa as 3 comidas preferidas. Armazene pelo menos a informação de 3 pessoas com suas comidas preferidas e ao final imprima uma mensagem com o nome da pessoa e suas comidas preferidas.&lt;/p&gt;

&lt;p&gt;Q4. Crie um dicionario de dicionarios representando um conjunto de cidades. A chave do dicionario principal será o nome da cidade, e o valor de cada chave será um dicionário com pelo menos 3 informações sobre a cidade, como país, população, nome. Imprima as informações de cada cidade na tela, pense na forma como você vai apresentar a informação para o usuário.&lt;/p&gt;

&lt;p&gt;Q5. Criar um algoritmo que informe a quantidade total de calorias de uma refeição a partir da escolha do usuário 'que deverá informar o prato, a sobremesa e bebida (veja a tabela a seguir).&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt; 
  &lt;tr&gt;
   &lt;td&gt;Prato&lt;/td&gt;
   &lt;td&gt;Sobremesa&lt;/td&gt;
   &lt;td&gt;Bebida&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;Vegetariano 180 cal&lt;/td&gt;
   &lt;td&gt;Abacaxi 75 cal&lt;/td&gt;
   &lt;td&gt;Chá 20 cal&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;Peixe 230 cal&lt;/td&gt;
   &lt;td&gt;Sorvete diet 110 cal&lt;/td&gt;
   &lt;td&gt;Suco de laranja 70 cal&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;Frango 250 cal&lt;/td&gt;
   &lt;td&gt;Mousse diet 170 cal&lt;/td&gt;
   &lt;td&gt;Suco de melão 100 cal&lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;Carne 350 cal&lt;/td&gt;
   &lt;td&gt;Mousse de chocolate 200 cal&lt;/td&gt;
   &lt;td&gt;Refrigerante diet 65 cal&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>beginners</category>
      <category>programming</category>
      <category>python</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>Dicionários em Python - #12</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Tue, 12 Jul 2022 22:26:26 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/dicionarios-em-python-12-3232</link>
      <guid>https://dev.to/jcarlosvale/dicionarios-em-python-12-3232</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HDaLd9RVJio"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Dicionários são coleções de objetos semelhantes às listas e tuplas. A principal diferença é que os dicionários armazenam uma “chave” para cada “valor”, desta forma, no jargão computacional os dicionários são mapas em &lt;em&gt;Python&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Parece confuso, mas vamos explorar este conceito nas próximas seções.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sintaxe
&lt;/h2&gt;

&lt;p&gt;Dicionários ou mapas armazenam dois valores por cada elemento: uma chave e um valor. É uma estrutura de dados cuja principal finalidade é localizar elementos de forma rápida.&lt;/p&gt;

&lt;p&gt;Utilizamos um mapa porque &lt;strong&gt;dada uma chave, você encontra um valor. Não existem chaves repetidas em um mapa.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Um dicionário é criado com o uso de &lt;strong&gt;&lt;em&gt;chaves (“{ }”)&lt;/em&gt;&lt;/strong&gt; e cada par &lt;strong&gt;&lt;em&gt;chave, valor&lt;/em&gt;&lt;/strong&gt; é identificado por &lt;strong&gt;&lt;em&gt;dois pontos (“:”)&lt;/em&gt;&lt;/strong&gt; e separados por &lt;strong&gt;&lt;em&gt;vírgula (“,”)&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe - criando dicionários
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"rosa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Jose"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"azul"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores_2&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"rosa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"azul"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores_2&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;No &lt;em&gt;mapa_cores_2&lt;/em&gt; do exemplo anterior, usamos a mesma chave &lt;em&gt;‘Joao’&lt;/em&gt; duas vezes, com os valores &lt;em&gt;“preto”&lt;/em&gt; e “azul” respectivamente. Como as chaves não podem se repetir em um dicionário, o último valor prevalece, e o resultado é o par &lt;em&gt;“Joao”:“azul”&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Também podemos usar dicionários para representar informações de algo em particular, por exemplo, um aluno.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe - representando informações específicas
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"nome"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"sexo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"feminino"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"idade"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"altura"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;1.65&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'sexo'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'feminino'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'idade'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'altura'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;1.65&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Manipulando valores
&lt;/h2&gt;

&lt;p&gt;Enquanto as listas utilizam um índice baseado na posição do elemento (índices começando na posição ZERO), &lt;strong&gt;os dicionários usam as chaves como índices&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Acessando valores com a chave
&lt;/h3&gt;

&lt;p&gt;Se queremos ler um valor, devemos usar o valor da chave. Também é possível atualizar o valor, utilizando a chave como índice.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Manipulando valores em um dicionário
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"rosa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Jose"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"azul"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;rosa&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"nome"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"sexo"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"feminino"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"idade"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"altura"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;1.65&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Idade da aluna %s = %s"&lt;/span&gt; &lt;span class="o"&gt;%&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"nome"&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"idade"&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt;
&lt;span class="n"&gt;Idade&lt;/span&gt; &lt;span class="n"&gt;da&lt;/span&gt; &lt;span class="n"&gt;aluna&lt;/span&gt; &lt;span class="n"&gt;Lara&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Acessando valores - &lt;strong&gt;&lt;em&gt;get()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Outra forma de acessar os valores de um dicionário é através do método &lt;strong&gt;&lt;em&gt;get()&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe - get()
&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;mapa&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;nome_chave&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;retorno_padrao&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Usando o &lt;strong&gt;&lt;em&gt;get()&lt;/em&gt;&lt;/strong&gt; se a chave não existir no mapa, será retornado um valor padrão definido pelo programador.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando o get()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="s"&gt;'preto'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="s"&gt;'azul'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
&lt;span class="bp"&gt;None&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A chave &lt;em&gt;‘Jose’&lt;/em&gt; não existe no mapa, então é retornado o valor ‘azul’. Caso você não forneça um valor padrão, será retornado o valor &lt;strong&gt;&lt;em&gt;None&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Inserindo valores com a chave
&lt;/h3&gt;

&lt;p&gt;Inserir valores em dicionários é mais simples do que em listas. Basta utilizar o dicionário e atribuir um novo valor para uma nova chave.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Inserindo valores em um dicionário
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"rosa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Jose"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"azul"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'Raul'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;'vermelho'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Raul'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'vermelho'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"nome"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"idade"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'idade'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"signo"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"cancer"&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'idade'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'signo'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'cancer'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Inserindo valores - &lt;strong&gt;&lt;em&gt;setdefault()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;O método &lt;strong&gt;&lt;em&gt;setdefault()&lt;/em&gt;&lt;/strong&gt; permite adicionar um valor padrão &lt;strong&gt;&lt;span&gt;quando uma chave não existe&lt;/span&gt;&lt;/strong&gt; no dicionário.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Inserindo valores em um dicionário com setdefault()
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"nome"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setdefault&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"idade"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;15&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'idade'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setdefault&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"idade"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="mi"&gt;15&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'idade'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;15&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observe que ao executarmos o &lt;strong&gt;&lt;em&gt;setdefault()&lt;/em&gt;&lt;/strong&gt; mais de uma vez, o valor não será mais alterado porque a chave já existe.&lt;/p&gt;

&lt;h3&gt;
  
  
  Removendo valores - &lt;strong&gt;&lt;em&gt;del&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;O comando &lt;strong&gt;&lt;em&gt;del&lt;/em&gt;&lt;/strong&gt; também é utilizado para remover a &lt;strong&gt;&lt;em&gt;chave&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;valor&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Removendo valores em um dicionário
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"rosa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Jose"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"azul"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;del&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'Joao'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'rosa'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'azul'&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Percorrendo dicionários
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lendo com &lt;strong&gt;&lt;em&gt;items()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Utilizando um laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; podemos ler a chave e o valor de um mapa, invocando o método &lt;strong&gt;&lt;em&gt;items()&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe - usando for para ler dicionários
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;variavel_key&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;variavel_value&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;mapa&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Programa - lerMapa.py
&lt;/span&gt;&lt;span class="n"&gt;usuario&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Maria'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;'idade'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;38&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;'sexo'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'F'&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;value&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;usuario&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;Chave: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Valor: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;value&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linhas 01 a 05 criamos um mapa com 3 chaves: &lt;strong&gt;&lt;em&gt;nome, idade, sexo&lt;/em&gt;&lt;/strong&gt;. E usando a sintaxe &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; da linha 07 imprimimos as chaves e valores.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usando for para ler dicionários
Chave: nome
Valor: Maria

Chave: idade
Valor: 38

Chave: sexo
Valor: F
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Um algoritmo interessante usando o &lt;strong&gt;&lt;em&gt;setdefault()&lt;/em&gt;&lt;/strong&gt; e o &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; é o de contar os caracteres de uma &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Implemente no seu ambiente.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#texto = input("Digite um texto: ")
&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{}&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;letra&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;texto&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setdefault&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;letra&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;letra&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;+=&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;count&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Você consegue entender o código acima? O método &lt;strong&gt;&lt;em&gt;setdefault()&lt;/em&gt;&lt;/strong&gt; é utilizado para criar um valor padrão na contagem de uma letra encontrada, caso não exista no dicionário, igual a ZERO. Desta forma, podemos manipular o campo (linha 05), incrementando o valor daquela chave. Se não tivéssemos usado o método para indicar um valor padrão, o código acima geraria um erro, uma vez que a chave não estaria presente no dicionário.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - countChar.py
Digite um texto: abacaxi
{'a': 3, 'b': 1, 'c': 1, 'x': 1, 'i': 1}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Lendo com &lt;strong&gt;&lt;em&gt;keys()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;O método &lt;strong&gt;&lt;em&gt;keys()&lt;/em&gt;&lt;/strong&gt; retorna a lista de chaves de um dicionário.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Programa - usarKeys.py
&lt;/span&gt;&lt;span class="n"&gt;usuario&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Maria'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;'idade'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;38&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;'sexo'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'F'&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"Usando Keys())"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;usuario&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;keys&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Chave: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="se"&gt;\n&lt;/span&gt;&lt;span class="s"&gt;Sem usar Keys())"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;usuario&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Chave: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Na linha 12 do código anterior, é possível navegar usando somente o nome do dicionário.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usarKeys.py
Usando Keys())
Chave: nome
Chave: idade
Chave: sexo

Sem usar Keys())
Chave: nome
Chave: idade
Chave: sexo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Lendo com &lt;strong&gt;&lt;em&gt;values()&lt;/em&gt;&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;O método &lt;strong&gt;&lt;em&gt;values()&lt;/em&gt;&lt;/strong&gt; retorna a lista de valores de um mapa.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Programa - usarValues.py
&lt;/span&gt;&lt;span class="n"&gt;cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;'Jose'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;'Leo'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'branco'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;'Edu'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'amarelo'&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;cor&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;cores&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;values&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Cor: &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;cor&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - usarValues.py
Cor: preto
Cor: branco
Cor: amarelo
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Utilizando listas e dicionários
&lt;/h2&gt;

&lt;p&gt;Listas, tuplas e dicionários são tipos de dados semelhantes aos numéricos, booleanos e &lt;strong&gt;&lt;em&gt;strings&lt;/em&gt;&lt;/strong&gt;. Desta forma podemos criar listas de dicionários, dicionários de listas, e outras variações.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lista de dicionário
&lt;/h3&gt;

&lt;p&gt;Neste exemplo, vamos criar uma lista de dicionários, representando uma turma escolar, e cada dicionário representando um aluno. Cada aluno possui uma média, e este programa irá indicar se o aluno reprovou (média &amp;lt; 4), ficará de recuperação (média &amp;lt; 7) ou se ele foi aprovado (médica &amp;gt;= 7).&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Programa - alunosAprovados.py
&lt;/span&gt;&lt;span class="n"&gt;turma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Paulo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;5.5&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;8.5&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Joca'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Ze'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;7.0&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Edu'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;2.4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;turma&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Aluno &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: REPROVADO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;7.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Aluno &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: RECUPERACAO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Aluno &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: APROVADO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Execução - usarValues.py
&lt;/span&gt;&lt;span class="n"&gt;Aluno&lt;/span&gt; &lt;span class="n"&gt;Paulo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;RECUPERACAO&lt;/span&gt;
&lt;span class="n"&gt;Aluno&lt;/span&gt; &lt;span class="n"&gt;Lara&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;APROVADO&lt;/span&gt;
&lt;span class="n"&gt;Aluno&lt;/span&gt; &lt;span class="n"&gt;Joca&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;REPROVADO&lt;/span&gt;
&lt;span class="n"&gt;Aluno&lt;/span&gt; &lt;span class="n"&gt;Ze&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;APROVADO&lt;/span&gt;
&lt;span class="n"&gt;Aluno&lt;/span&gt; &lt;span class="n"&gt;Edu&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;REPROVADO&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Podemos também implementar um dicionário de lista para salvar as notas de um aluno e calcular sua média.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Programa - mediaAluno.py
&lt;/span&gt;&lt;span class="n"&gt;aluno_01&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"nome"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Joel"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"notas"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;7.7&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;8.3&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;aluno_02&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"nome"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Coringa"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"notas"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="n"&gt;aluno_03&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;"nome"&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;"Batman"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="s"&gt;"notas"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;8&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="n"&gt;turma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="n"&gt;aluno_01&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;aluno_02&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;aluno_03&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="c1"&gt;#calcular media
&lt;/span&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;turma&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="n"&gt;notas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"notas"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
    &lt;span class="n"&gt;media&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;sum&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;notas&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="nb"&gt;len&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;notas&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="n"&gt;aluno&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"media"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;media&lt;/span&gt;

&lt;span class="c1"&gt;#imprimindo turma com media
&lt;/span&gt;&lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;turma&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Nas linhas 01 a 12 é criado 3 variáveis do tipo dicionário, representando 3 alunos, com nome e uma lista de notas.&lt;/p&gt;

&lt;p&gt;Na linha 14 criamos uma turma como uma lista de alunos.&lt;/p&gt;

&lt;p&gt;O laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; lê cada aluno na turma, e utilizando a variável &lt;strong&gt;&lt;em&gt;aluno&lt;/em&gt;&lt;/strong&gt;, calcula a sua média (somando as notas e dividindo pela quantidade de notas) e salvando no dicionário representado por &lt;strong&gt;&lt;em&gt;aluno&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Finalmente, podemos implementar o exemplo dos alunos aprovados com a turma sendo representada como dicionário de dicionários.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Programa - alunosAprovadosUsandoDicionario.py
&lt;/span&gt;&lt;span class="n"&gt;turma&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="s"&gt;'Paulo'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Paulo'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;5.5&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s"&gt;'Lara'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Lara'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;8.5&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s"&gt;'Joca'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Joca'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;3.2&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s"&gt;'Ze'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Ze'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;7.0&lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="s"&gt;'Edu'&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;'nome'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;'Edu'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mf"&gt;2.4&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;dados&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;turma&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;items&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;dados&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;4.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Aluno &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: REPROVADO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;elif&lt;/span&gt; &lt;span class="n"&gt;dados&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'media'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt; &lt;span class="mf"&gt;7.0&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Aluno &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: RECUPERACAO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
    &lt;span class="k"&gt;else&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
        &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sa"&gt;f&lt;/span&gt;&lt;span class="s"&gt;"Aluno &lt;/span&gt;&lt;span class="si"&gt;{&lt;/span&gt;&lt;span class="n"&gt;nome&lt;/span&gt;&lt;span class="si"&gt;}&lt;/span&gt;&lt;span class="s"&gt;: APROVADO"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Execução - alunosAprovadosUsandoDicionario.py
Aluno Paulo: RECUPERACAO
Aluno Lara: APROVADO
Aluno Joca: REPROVADO
Aluno Ze: APROVADO
Aluno Edu: REPROVADO
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Erros comuns
&lt;/h2&gt;

&lt;p&gt;Dicionários são estruturas &lt;strong&gt;&lt;em&gt;chave-valor&lt;/em&gt;&lt;/strong&gt;, não podemos usar chaves inexistentes na lógica de nossos programas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Usando chaves inexistentes geram erros na execução
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"rosa"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'Zezinho'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;stdin&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;KeyError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Zezinho'&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;del&lt;/span&gt; &lt;span class="n"&gt;mapa_cores&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'Raul'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;stdin&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;KeyError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'Raul'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Também não é possível fazer a junção (“+”) com dicionários.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#operação de junção não suportada
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cor_um&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Joao"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cor_dois&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="s"&gt;"Lara"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="s"&gt;"rosa"&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;mapa_cor_um&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;mapa_cor_dois&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;stdin&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;unsupported&lt;/span&gt; &lt;span class="n"&gt;operand&lt;/span&gt; &lt;span class="nb"&gt;type&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;s&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'dict'&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="s"&gt;'dict'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>programming</category>
      <category>python</category>
    </item>
    <item>
      <title>Tuplas em Python - #11</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Tue, 12 Jul 2022 22:25:51 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/tuplas-em-python-11-2b2k</link>
      <guid>https://dev.to/jcarlosvale/tuplas-em-python-11-2b2k</guid>
      <description>&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/HDaLd9RVJio"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Introdução
&lt;/h2&gt;

&lt;p&gt;Tuplas são listas que não podem ser modificadas, ao invés de utilizarem colchetes, elas utilizam parênteses em sua sintaxe. Uma estrutura que não pode ser modificada é denominada como &lt;strong&gt;&lt;em&gt;imutável&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Neste capítulo iremos aprender as principais operações que podemos usar com &lt;strong&gt;&lt;em&gt;tuplas&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sintaxe
&lt;/h2&gt;

&lt;p&gt;Uma tupla é criada de forma semelhante a uma lista, mas com o uso de parênteses.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Sintaxe - criando tuplas
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tupla_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"verde"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"branco"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tupla_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'verde'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'branco'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tupla_frutas&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"coco"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"banana"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"uva"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"morango"&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tupla_frutas&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'coco'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'banana'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'uva'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'morango'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Convertendo tuplas e listas
&lt;/h2&gt;

&lt;p&gt;Semelhante às funções &lt;strong&gt;&lt;em&gt;int(), float(), str()&lt;/em&gt;&lt;/strong&gt;, se quisermos converter uma tupla em uma lista ou uma lista em uma tupla, usamos as funções &lt;strong&gt;&lt;em&gt;list()&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;tuple()&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Convertendo uma tupla em lista e vice versa
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tupla_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"verde"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"branco"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;list&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;tupla_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_cores&lt;/span&gt;
&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s"&gt;'verde'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'branco'&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;lista_cores&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"amarelo"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tupla_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;tuple&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;lista_cores&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tupla_cores&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'verde'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'preto'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'branco'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;'amarelo'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Método &lt;strong&gt;&lt;em&gt;partition( )&lt;/em&gt;&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;O método &lt;strong&gt;&lt;em&gt;partition( )&lt;/em&gt;&lt;/strong&gt; é aplicado à uma &lt;em&gt;string&lt;/em&gt; e retorna uma &lt;strong&gt;&lt;em&gt;tupla&lt;/em&gt;&lt;/strong&gt; com três valores: &lt;strong&gt;&lt;em&gt;prefixo, separador, sufixo&lt;/em&gt;&lt;/strong&gt;. A tupla de retorno sempre possui o tamanho fixo de três posições, mesmo que existam múltiplas ocorrências do separador. &lt;/p&gt;

&lt;p&gt;Se o separador não for encontrado na &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt;, o valor &lt;strong&gt;&lt;em&gt;prefixo&lt;/em&gt;&lt;/strong&gt; da tupla será a própria &lt;strong&gt;&lt;em&gt;string&lt;/em&gt;&lt;/strong&gt; e os campos &lt;strong&gt;&lt;em&gt;separador&lt;/em&gt;&lt;/strong&gt; e &lt;strong&gt;&lt;em&gt;sufixo&lt;/em&gt;&lt;/strong&gt; estarão vazios.&lt;/p&gt;

&lt;p&gt;Experimente os exemplos no seu &lt;strong&gt;&lt;em&gt;shell&lt;/em&gt;&lt;/strong&gt;.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Experimente os exemplos no seu shell.
&lt;/span&gt;&lt;span class="n"&gt;Método&lt;/span&gt; &lt;span class="n"&gt;partition&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"banana, melao, uva"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;partition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;","&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'banana'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;','&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;' melao, uva'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;prefixo&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;separador&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;sufixo&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"banana, melao, uva"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;partition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;","&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;prefixo&lt;/span&gt;
&lt;span class="s"&gt;'banana'&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;separador&lt;/span&gt;
&lt;span class="s"&gt;','&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;sufixo&lt;/span&gt;
&lt;span class="s"&gt;' melao, uva'&lt;/span&gt;

&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="s"&gt;"Estou aprendendo Python"&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;partition&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;","&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;'Estou aprendendo Python'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;''&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;''&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Observe que no exemplo anterior aplicamos a atribuição múltipla na leitura dos elementos da tupla: &lt;code&gt;prefixo, separador, sufixo = "banana, melao, uva".partition(",").&lt;/code&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Erros comuns
&lt;/h2&gt;

&lt;p&gt;Tuplas são somente leitura, você não pode alterar seus valores e nem adicionar elementos depois que são criadas.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="c1"&gt;#Tuplas não podem ser modificadas
&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tupla_cores&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"verde"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"preto"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s"&gt;"branco"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="o"&gt;&amp;gt;&amp;gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;tupla_cores&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;0&lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s"&gt;"azul"&lt;/span&gt;
&lt;span class="n"&gt;Traceback&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;most&lt;/span&gt; &lt;span class="n"&gt;recent&lt;/span&gt; &lt;span class="n"&gt;call&lt;/span&gt; &lt;span class="n"&gt;last&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;File&lt;/span&gt; &lt;span class="s"&gt;"&amp;lt;stdin&amp;gt;"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;line&lt;/span&gt; &lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="n"&gt;module&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nb"&gt;TypeError&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s"&gt;'tuple'&lt;/span&gt; &lt;span class="nb"&gt;object&lt;/span&gt; &lt;span class="n"&gt;does&lt;/span&gt; &lt;span class="ow"&gt;not&lt;/span&gt; &lt;span class="n"&gt;support&lt;/span&gt; &lt;span class="n"&gt;item&lt;/span&gt; &lt;span class="n"&gt;assignment&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>beginners</category>
      <category>tutorial</category>
      <category>python</category>
      <category>programming</category>
    </item>
    <item>
      <title>Lista de Exercícios 04 - Listas #10</title>
      <dc:creator>Joao Carlos Sousa do Vale</dc:creator>
      <pubDate>Thu, 23 Jun 2022 18:13:20 +0000</pubDate>
      <link>https://dev.to/jcarlosvale/lista-de-exercicios-04-listas-10-4e6e</link>
      <guid>https://dev.to/jcarlosvale/lista-de-exercicios-04-listas-10-4e6e</guid>
      <description>&lt;p&gt;Q1. Crie uma lista com seus jogos ou &lt;em&gt;hobbies&lt;/em&gt; favoritos e armazene em uma variável chamada &lt;em&gt;games&lt;/em&gt;. Crie uma lista com suas comidas favoritas e atribua a uma variável chamada &lt;em&gt;&lt;em&gt;foods&lt;/em&gt;&lt;/em&gt;. Finalmente, faça a junção (“+”) das duas listas e salve na variável &lt;em&gt;favorites&lt;/em&gt;. Imprima na tela a variável &lt;em&gt;favorites&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Q2. Crie uma lista &lt;strong&gt;&lt;em&gt;cores&lt;/em&gt;&lt;/strong&gt; com os valores &lt;em&gt;verde, amarelo&lt;/em&gt; e &lt;em&gt;vermelho&lt;/em&gt; em qualquer ordem e quantidade. Usando um laço &lt;strong&gt;&lt;em&gt;for&lt;/em&gt;&lt;/strong&gt; verifique cada elemento da lista e imprima:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;se a cor é verde, “voce ganhou 5 pontos”&lt;/li&gt;
&lt;li&gt;se a cor é amarela, “voce ganhou 3 pontos”&lt;/li&gt;
&lt;li&gt;se a cor é vermelha, “voce ganhou 1 ponto”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q3. Crie um programa para simular a criação de &lt;em&gt;logins&lt;/em&gt; de um &lt;em&gt;website&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;crie uma lista de &lt;strong&gt;&lt;em&gt;usuarios_atuais&lt;/em&gt;&lt;/strong&gt; com 5 ou mais nomes de usuário&lt;/li&gt;
&lt;li&gt;crie uma outra lista &lt;strong&gt;usuarios_novos&lt;/strong&gt; com 5 nomes de usuários, sendo 2 deles existentes na lista &lt;strong&gt;usuarios_atuais&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;percorra a lista &lt;strong&gt;usuarios_novos&lt;/strong&gt; e verifique se já foram utilizados (presentes em &lt;strong&gt;usuarios_atuais&lt;/strong&gt;). Se presente, imprima uma mensagem indicando que o nome de usuário já foi utilizado. Senão imprima que o nome de usuário está disponível.&lt;/li&gt;
&lt;li&gt;a comparação deve ignorar maiúsculas e minúsculas. Por exemplo ‘Joao’ e ‘JOAO’ são considerados iguais.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Q4. Crie um algoritmo que imprima os elementos de uma lista, sem repetir a impressão. &lt;/p&gt;

&lt;p&gt;Por exemplo: lista = [1, 5, 2, 4, 1, 3, 5]&lt;/p&gt;

&lt;p&gt;Impressão: 1, 5, 2, 4, 3 sem repetir o 1 e o 5.&lt;/p&gt;

&lt;p&gt;Q5. Entrar com um nome e imprimi-lo se o primeiro caractere for a letra A (considerar letra minúscula ou maiúscula).&lt;/p&gt;

&lt;p&gt;Q6. Entrar com o nome de uma pessoa e so imprimí-lo se o prenome for PAULA, não considerar maiúsculas e minúsculas.&lt;/p&gt;

&lt;p&gt;Q7. Crie um programa que faça a distribuição de uma lista de alunos em 3 salas. Cada sala é representada por uma lista e que devem ser impressas no final da distribuição.&lt;/p&gt;

&lt;p&gt;Regra de distribuição utiliza a primeira letra do nome do aluno:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;“A - K”: sala 101&lt;/li&gt;
&lt;li&gt;“L - N”: sala 102&lt;/li&gt;
&lt;li&gt;“O - Z”: sala 103&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Por exemplo: o aluno Lucas deve ser distribuído na sala 102  e o aluno Pedro na sala 103.&lt;/p&gt;

&lt;p&gt;Q8. Criar um algoritmo que leia uma data (no formato ddmmaaaa) e imprimir se a data é válida ou não.&lt;/p&gt;

&lt;p&gt;Q9. Dada a seguinte lista de listas:    &lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
  &lt;tr&gt;
   &lt;td&gt;
&lt;strong&gt;&lt;code&gt;&lt;em&gt;matriz&lt;/em&gt;&lt;/code&gt;&lt;/strong&gt;
   &lt;/td&gt;
  &lt;/tr&gt;
  &lt;tr&gt;
   &lt;td&gt;
&lt;code&gt;matriz = [&lt;/code&gt;
&lt;p&gt;
&lt;code&gt; ['00', '01', '02', '03'],&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt; ['10', '11', '12', '13'],&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt; ['20', '21', '22', '23'],&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt; ['30', '31', '32', '33']&lt;/code&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;code&gt;]&lt;/code&gt;
   &lt;/p&gt;
&lt;/td&gt;
  &lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Observe que cada lista da matriz possui elementos iniciando com sua posição na lista, por exemplo, o elemento “13” está na 2a. lista (índice 1) e é o quarto elemento (índice 3).&lt;/p&gt;

&lt;p&gt;Desta forma, o elemento da 3a. lista e 2a. posição é o “21”.&lt;/p&gt;

&lt;p&gt;Faça:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;imprima a matriz na tela, tente manter cada lista em uma linha&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```
             00 01 02 03
             10 11 12 13
             20 21 22 23
             30 31 32 33
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;imprima os valores acima da diagonal principal&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```
             00 01 02 03
                11 12 13
                  22 23
                     33
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;imprima a diagonal principal&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```
             00 
                11
                   22
                      33
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;imprima os valores abaixo da diagonal principal&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```
             00 
             10 11
             20 21 22
             30 31 32 33
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;acima da diagonal principal&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```
             00 01 02 03
             10 11 12 
             20 21 
             30
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;diagonal secundária&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```
                      03
                   12 
                21 
             30
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;abaixo da diagonal secundária&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;            ```
                      03
                   12 13
                21 22 23
             30 31 32 33
            ```
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Q10. Crie um algoritmo que leia os elementos de um vetor com 20 posições e escreva-o. Em seguida, troque o primeiro elemento pelo último, o segundo pelo penúltimo, o terceiro pelo antepenúltimo, e assim sucessivamente. Mostre o vetor depois das trocas.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
