{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercícios sobre o comando for\n", "Vamos praticar um pouco mais com o comando `for` com strings e a função `range`.\n", "\n", "## Relembrando o comando for\n", "\n", "De modo geral, podemos dizer que existem duas maneiras de se usar o comando for. \n", "\n", "### Primeiro modo\n", "\n", "O primeiro modo é usado quando estamos interessados apenas nos elementos da string (ou lista), sem precisar saber o índice desses elementos:\n", "```python\n", "for variavel in minha_string_ou_lista :\n", " # faça alguma coisa com variavel\n", "``` \n", "\n", "#### Exemplos\n", "\n", "Percorrer toda uma string, mostrando um caractere por vez:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M\n", "i\n", "n\n", "h\n", "a\n", " \n", "s\n", "t\n", "r\n", "i\n", "n\n", "g\n" ] } ], "source": [ "frase = \"Minha string\"\n", "for letra in frase: # letra agora corresponde a cada caractere em frase\n", " print(letra) # posso fazer coisas com letra" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Veja que podemos usar qualquer nome para variável:" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M\n", "i\n", "n\n", "h\n", "a\n", " \n", "s\n", "t\n", "r\n", "i\n", "n\n", "g\n" ] } ], "source": [ "frase = \"Minha string\"\n", "for c in frase: # c agora corresponde a cada caractere em frase\n", " print(c) # posso fazer coisas com c" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Podemos verificar uma condição dentro do comando for. Por exemplo, ignorar espaços em branco:" ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M\n", "i\n", "n\n", "h\n", "a\n", "s\n", "t\n", "r\n", "i\n", "n\n", "g\n" ] } ], "source": [ "frase = \"Minha string\"\n", "for letra in frase:\n", " if letra != \" \":\n", " print(letra)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Segundo modo\n", "O segundo modo é usado quando precisamos percorrer os elementos da string (ou lista) usando as suas posições ou índices:\n", "```python\n", "for i in range(len(minha_string_ou_lista)):\n", " # faça alguma coisa com i, inclusive acessar minha_string_ou_lista[i]\n", "``` \n", "#### Exemplos\n", "\n", "Percorrer toda uma string, mostrando um caractere por vez, mas usando o seu índice:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M\n", "i\n", "n\n", "h\n", "a\n", " \n", "s\n", "t\n", "r\n", "i\n", "n\n", "g\n" ] } ], "source": [ "frase = \"Minha string\"\n", "for i in range(len(frase)):\n", " print(frase[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Percorrer toda uma string, mostrando um caractere e o seu índice por vez:" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M 0\n", "i 1\n", "n 2\n", "h 3\n", "a 4\n", " 5\n", "s 6\n", "t 7\n", "r 8\n", "i 9\n", "n 10\n", "g 11\n" ] } ], "source": [ "frase = \"Minha string\"\n", "for i in range(len(frase)):\n", " print(frase[i],i)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Assim como no modo anterior, também podemos usar qualquer nome de variável:" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M 0\n", "i 1\n", "n 2\n", "h 3\n", "a 4\n", " 5\n", "s 6\n", "t 7\n", "r 8\n", "i 9\n", "n 10\n", "g 11\n" ] } ], "source": [ "frase = \"Minha string\"\n", "for posicao in range(len(frase)):\n", " print(frase[posicao],posicao)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Também podemos percorrer a string de trás para frente:" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "g\n", "n\n", "i\n", "r\n", "t\n", "s\n", " \n", "a\n", "h\n", "n\n", "i\n", "M\n" ] } ], "source": [ "frase = \"Minha string\"\n", "indice_fim = len(frase)-1\n", "for i in range(indice_fim, -1, -1):\n", " print(frase[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "E também verificar condições. Vamos ignorar os espaços em branco:" ] }, { "cell_type": "code", "execution_count": 17, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "M\n", "i\n", "n\n", "h\n", "a\n", "s\n", "t\n", "r\n", "i\n", "n\n", "g\n" ] } ], "source": [ "frase = \"Minha string\"\n", "for i in range(len(frase)):\n", " if frase[i] != \" \":\n", " print(frase[i])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Exercícios" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Na célula abaixo, percorra a string `mensagem1` e mostre cada um de seus caracteres." ] }, { "cell_type": "code", "execution_count": 9, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mensagem1 = \"Estou aprendendo Python.\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Na célula abaixo, percorra a string `mensagem2` e mostre cada um de seus caracteres, começando do final até o início." ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "mensagem2 = \".C euq od licáf siam é nohtyP\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Mostre todos os números que são divisíveis por 9 e por 2 ao mesmo tempo no intervalo de 0 a 100." ] }, { "cell_type": "code", "execution_count": null, "metadata": { "collapsed": true }, "outputs": [], "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Na célula abaixo, percorra a string `mensagem3`, mostre cada um de seus caracteres, mas toda vez que encontrar a letra `a`, mostre um `4` e se encontrar a letra `o`, mostre um `*`." ] }, { "cell_type": "code", "execution_count": 18, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mensagem3 = \"Nada como um dia depois do outro\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Faça o mesmo exercício anterior, mas em vez de mostrar cada caractere na tela, adicione (concatene) os caracteres a outra string `mensagem_trocada`. Ao final mostre o conteúdo de `mensagem_trocada` de uma vez." ] }, { "cell_type": "code", "execution_count": 19, "metadata": { "collapsed": true }, "outputs": [], "source": [ "mensagem3 = \"Nada como um dia depois do outro\"\n", "mensagem_trocada = \"\"\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Na célula abaixo, mostre quantas vezes aparece a letra `e` na string de nome `latim`." ] }, { "cell_type": "code", "execution_count": 20, "metadata": { "collapsed": true }, "outputs": [], "source": [ "latim = \"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor\"\n" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.6.2" } }, "nbformat": 4, "nbformat_minor": 2 }