A maioria dos programas é escrita para resolver o problema de um usuário final. Para fazer isso, você geralmente precisa obter algumas informações do usuário. Por exemplo, digamos que alguém queira descobrir se tem idade suficiente para votar. Se você escrever um programa para responder a essa pergunta, precisará saber a idade do usuário antes de poder fornecer uma resposta. O programa precisará pedir ao usuário para entrar com, ou input, sua idade; uma vez que o programa tenha essa entrada, ele pode compará-la com a idade de votação para determinar se o usuário tem idade suficiente e então relatar o resultado.
Neste capítulo, você aprenderá como aceitar a entrada do usuário para que seu programa possa trabalhar com ela. Quando seu programa precisar de um nome, você poderá solicitar um nome ao usuário. Quando seu programa precisar de uma lista de nomes, você poderá solicitar uma série de nomes ao usuário. Para fazer isso, você usará a função input().
Você também aprenderá como manter os programas em execução pelo tempo que os usuários desejarem, para que eles possam inserir quantas informações precisarem; então, seu programa poderá trabalhar com essas informações. Você usará o loop while do Python para manter os programas em execução enquanto certas condições permanecerem verdadeiras.
Com a capacidade de trabalhar com a entrada do usuário e a capacidade de controlar por quanto tempo seus programas serão executados, você poderá escrever programas totalmente interativos.
A função input() pausa seu programa e espera que o usuário insira algum texto. Uma vez que o Python recebe a entrada do usuário, ele atribui essa entrada a uma variável para torná-la conveniente para você trabalhar.
Por exemplo, o programa a seguir pede ao usuário para digitar algum texto e, em seguida, exibe essa mensagem de volta ao usuário:
mensagem = input('Escreva algo que o programa devolve o que você escreveu: ')
print(mensagem)
A função input() recebe um argumento: o prompt que queremos exibir ao usuário, para que ele saiba que tipo de informação inserir. Neste exemplo, quando o Python executa a primeira linha, o usuário vê o prompt Escreva algo que o programa devolve o que você escreveu:. O programa espera enquanto o usuário insere sua resposta e continua após o usuário pressionar ENTER. A resposta é atribuída à variável mensagem, então print(mensagem) exibe a entrada de volta ao usuário.
Cada vez que você usar a função input(), você deve incluir um prompt claro e fácil de seguir que diga ao usuário exatamente que tipo de informação você está procurando. Qualquer declaração que diga ao usuário o que digitar deve funcionar. Por exemplo:
nome = input('Escreva o seu nome: ')
print(f'\nOlá, {nome}!')
Adicione um espaço no final dos seus prompts (após os dois pontos no exemplo anterior) para separar o prompt da resposta do usuário e deixar claro para o usuário onde inserir o texto.
Às vezes, você vai querer escrever um prompt que seja maior que uma linha. Por exemplo, você pode querer dizer ao usuário por que você está pedindo uma determinada entrada. Você pode atribuir seu prompt a uma variável e passar essa variável para a função input(). Isso permite que você construa seu prompt em várias linhas e, em seguida, escreva uma declaração input() limpa:
prompt = 'Se você escever o seu nome, podemos personalizar uma mensagem para você.'
prompt += '\nQual o seu nome?: '
nome = input(prompt)
print(f'\nOlá, {nome}!')
Este exemplo mostra uma maneira de construir uma string multilinha. A primeira linha atribui a primeira parte da mensagem à variável prompt. Na segunda linha, o operador += pega a string que foi atribuída a prompt e adiciona a nova string no final.
O prompt agora abrange duas linhas, novamente com espaço após o ponto de interrogação para maior clareza.
Quando você usa a função input(), o Python interpreta tudo o que o usuário insere como uma string. Considere a seguinte sessão do interpretador, que pergunta a idade do usuário:
idade = input('Qual a sua idade?: ')
print(type(idade))
O usuário insere o número 26, mas quando pedimos ao Python o valor de idade, ele retorna a representação em string do valor numérico inserido. Sabemos que o Python interpretou a entrada como uma string porque o tipo retornado é str. Se tudo o que você quer fazer é imprimir a entrada, isso funciona bem. Mas se você tentar usar a entrada como um número, você obterá um erro:
idade = input('Qual a sua idade?: ')
print(idade >= 18) # 1
Quando você tenta usar a entrada para fazer uma comparação numérica (1), o Python produz um erro porque não consegue comparar uma string com um inteiro: a string '26' atribuída a idade não pode ser comparada ao valor numérico 18.
Podemos resolver esse problema usando a função int(), que converte a string de entrada em um valor numérico. Isso permite que a comparação seja executada com sucesso:
idade = input('Qual a sua idade?: ')
idade = int(idade) # 1
print(idade >= 18)
Neste exemplo, quando inserimos 26 no prompt, o Python interpreta o número como uma string, mas o valor é então convertido para uma representação numérica por int() (1). Agora o Python pode executar o teste condicional: ele compara idade (que agora representa o valor numérico 26) e 18 para ver se idade é maior ou igual a 18. Este teste é avaliado como True.
Como você usa a função int() em um programa real? Considere um programa que determina se as pessoas são altas o suficiente para andar em uma montanha-russa:
altura = input('Qual a sua altura em centímetros?: ')
altura = int(altura)
if altura >= 120:
print('\nVocê tem altura para andar na montanha-russa')
else:
print('\nVocê ainda não pode andar na montanha-russa')
O programa pode comparar altura com 120 porque altura = int(altura) converte o valor de entrada para uma representação numérica antes da comparação ser feita. Se o número inserido for maior ou igual a 120, dizemos ao usuário que ele é alto o suficiente.
Ao usar entrada numérica para fazer cálculos e comparações, certifique-se de converter o valor de entrada em uma representação numérica primeiro.
Uma ferramenta útil para trabalhar com informações numéricas é o operador de módulo (%), que divide um número por outro e retorna o resto:
print(4 % 3)
print(5 % 3)
print(6 % 3)
print(7 % 3)
O operador de módulo não informa quantas vezes um número cabe em outro; ele apenas informa qual é o resto.
Quando um número é divisível por outro número, o resto é 0, então o operador de módulo sempre retorna 0. Você pode usar esse fato para determinar se um número é par ou ímpar:
numero = input('Digite um número e veja se é par ou ímpar: ')
numero = int(numero)
if numero % 2 == 0:
print(f'\nO número {numero} é par')
else:
print(f'\nO número {numero} é ímpar')
Números pares são sempre divisíveis por dois, então se o módulo de um número e dois for zero (aqui, if numero % 2 == 0) o número é par. Caso contrário, é ímpar.
Exercício 01: Escreva um programa que pergunte ao usuário que tipo de carro de aluguel ele gostaria. Imprima uma mensagem sobre esse carro, como “Deixe-me ver se consigo encontrar um Subaru para você".
Exercício 02: Escreva um programa que pergunte ao usuário quantas pessoas estão em seu grupo de jantar. Se a resposta for mais de oito, imprima uma mensagem dizendo que eles terão que esperar por uma mesa. Caso contrário, informe que a mesa está pronta.
Exercício 03: Peça um número ao usuário e depois informe se o número é múltiplo de 10 ou não.
O loop for pega uma coleção de itens e executa um bloco de código uma vez para cada item na coleção. Em contraste, o loop while roda enquanto, uma certa condição for verdadeira.
Você pode usar um loop while para contar uma série de números. Por exemplo, o seguinte loop while conta de 1 a 5:
numero_atual = 1
while numero_atual <= 5:
print(numero_atual)
numero_atual += 1
Na primeira linha, começamos a contar a partir de 1 atribuindo a numero_atual o valor 1. O loop while é então definido para continuar em execução enquanto o valor de numero_atual for menor ou igual a 5. O código dentro do loop imprime o valor de numero_atual e então adiciona 1 a esse valor com numero_atual += 1. (O operador += é uma abreviação de numero_atual = numero_atual + 1).
Python repete o loop enquanto a condição numero_atual <= 5 for verdadeira. Como 1 é menor que 5, Python imprime 1 e então adiciona 1, tornando o número atual 2. Como 2 é menor que 5, Python imprime 2 e adiciona 1 novamente, tornando o número atual 3, e assim por diante. Uma vez que o valor de numero_atual é maior que 5, o loop para de rodar e o programa termina.
Os programas que você usa todos os dias provavelmente contêm loops while. Por exemplo, um jogo precisa de um loop while para continuar rodando enquanto você quiser continuar jogando, e assim ele pode parar de rodar assim que você pedir para ele sair. Não seria divertido usar programas se eles parassem de rodar antes que nós disséssemos ou continuassem rodando mesmo depois que quiséssemos sair, então loops while são bem úteis.
Podemos fazer um programa rodar pelo tempo que o usuário quiser colocando a maior parte do programa dentro de um loop while. Definiremos um valor de saída e então manteremos o programa rodando enquanto o usuário não tiver inserido o valor de saída:
prompt = '\nEscreva qualquer coisa que o programa te retornará o que você escreveu.'
prompt += '\nEscreva "sair" para fechar o progrma: '
mensagem = ''
while mensagem != 'sair':
mensagem = input(prompt)
print(mensagem)
Primeiro, definimos um prompt que informa ao usuário suas duas opções: inserir uma mensagem ou inserir o valor de saída (nesse caso, 'sair'). Em seguida, configuramos uma variável mensagem para rastrear qualquer valor que o usuário inserir. Definimos mensagem como uma string vazia, (''), para que o Python tenha algo a verificar na primeira vez que atingir a linha while. Na primeira vez que o programa é executado e o Python atinge a instrução while, ele precisa comparar o valor de mensagem com 'sair', mas nenhuma entrada do usuário foi inserida ainda. Se o Python não tiver nada para comparar, ele não poderá continuar executando o programa. Para resolver esse problema, garantimos que mensagem tenha um valor inicial. Embora seja apenas uma string vazia, fará sentido para o Python e permitirá que ele execute a comparação que faz o loop while funcionar. Este loop while é executado enquanto o valor de mensagem não for 'sair'.
Na primeira vez no loop, mensagem é apenas uma string vazia, então o Python entra no loop. Em mensagem = input(prompt), o Python exibe o prompt e espera que o usuário insira sua entrada. O que quer que ele insira é atribuído a mensagem e impresso; então, o Python reavalia a condição na declaração while. Enquanto o usuário não tiver inserido a palavra 'sair', o prompt é exibido novamente e o Python aguarda por mais entradas. Quando o usuário finalmente insere 'sair', o Python para de executar o loop while e o programa termina.
Este programa funciona bem, exceto que ele imprime a palavra 'sair' como se fosse uma mensagem real. Um simples teste if corrige isso:
prompt = '\nEscreva qualquer coisa que o programa te retornará o que você escreveu.'
prompt += '\nEscreva "sair" para fechar o progrma: '
mensagem = ''
while mensagem != 'sair':
mensagem = input(prompt)
if mensagem != 'sair':
print(mensagem)
Agora o programa faz uma verificação rápida antes de exibir a mensagem e só imprime a mensagem se ela não corresponder ao valor de saída.
No exemplo anterior, fizemos o programa executar certas tarefas enquanto uma dada condição era verdadeira. Mas e quanto a programas mais complicados nos quais muitos eventos diferentes poderiam fazer com que o programa parasse de rodar?
Por exemplo, em um jogo, vários eventos diferentes podem terminar o jogo. Quando o jogador fica sem navios, seu tempo acaba, ou as cidades que ele deveria proteger são todas destruídas, o jogo deve terminar. Ele precisa terminar se qualquer um desses eventos acontecer. Se muitos eventos possíveis podem ocorrer para parar o programa, tentar testar todas essas condições em uma declaração while se torna complicado e difícil.
Para um programa que deve ser executado somente enquanto muitas condições forem verdadeiras, você pode definir uma variável que determina se o programa inteiro está ativo ou não. Essa variável, chamada de flag, atua como um sinal para o programa. Podemos escrever nossos programas para que eles sejam executados enquanto a flag estiver definido como True e parem de ser executados quando qualquer um dos vários eventos definir o valor da flag como False. Como resultado, nossa instrução while geral precisa verificar apenas uma condição: se a flag é atualmente True. Então, todos os nossos outros testes (para ver se ocorreu um evento que deve definir a flag como False) podem ser organizados de forma organizada no restante do programa.
Vamos adicionar uma flag ao programa da seção anterior. Esta flag, que chamaremos de ativo (embora você possa chamá-lo de qualquer coisa), monitorará se o programa deve ou não continuar em execução:
prompt = '\nEscreva qualquer coisa que o programa te retornará o que você escreveu.'
prompt += '\nEscreva "sair" para fechar o progrma: '
ativo = True
mensagem = ''
while ativo:
mensagem = input(prompt)
if mensagem == 'sair':
ativo = False
else:
print(mensagem)
Definimos a variável ativo como True para que o programa inicie em um estado ativo. Fazer isso torna a declaração while mais simples porque nenhuma comparação é feita na declaração while em si; a lógica é cuidada em outras partes do programa. Enquanto a variável ativo permanecer True, o loop continuará em execução.
Este programa tem a mesma saída do exemplo anterior, onde colocamos o teste condicional diretamente na declaração while. Mas agora que temos um sinalizador para indicar se o programa geral está em um estado ativo, seria fácil adicionar mais testes (como declarações elif) para eventos que devem fazer com que ativo se torne False. Isso é útil em programas complicados, como jogos, nos quais pode haver muitos eventos que devem fazer com que o programa pare de ser executado. Quando qualquer um desses eventos faz com que o sinalizador ativo se torne False, o loop principal do jogo será encerrado, uma mensagem Game Over pode ser exibida e o jogador pode ter a opção de jogar novamente.
Para sair de um loop while imediatamente sem executar nenhum código restante no loop, independentemente dos resultados de qualquer teste condicional, use a instrução break. A instrução break direciona o fluxo do seu programa; você pode usá-la para controlar quais linhas de código são executadas e quais não são, para que o programa execute apenas o código que você deseja, quando você deseja.
Por exemplo, considere um programa que pergunta ao usuário sobre os lugares que ele visitou. Podemos parar o loop while neste programa chamando break assim que o usuário digitar o valor 'sair':
prompt = '\nDigite o nome da cidade que você visitou: '
while True: # 1
cidade = input(prompt)
if cidade == 'sair':
break
else:
print(f'Que bom que você visitou a cidade de {cidade.title()}!')
Um loop que começa com while True (1) será executado para sempre, a menos que atinja uma declaração break. O loop neste programa continua pedindo ao usuário para inserir os nomes das cidades em que esteve até que ele insira 'sair'. Quando ele insere 'sair', a declaração break é executada, fazendo com que o Python saia do loop.
Você pode usar a instrução break em qualquer um dos loops do Python. Por exemplo, você pode usar break para sair de um loop for que esteja trabalhando em uma lista ou dicionário.
Em vez de sair de um loop completamente sem executar o restante do código, você pode usar a instrução continue para retornar ao início do loop, com base no resultado de um teste condicional. Por exemplo, considere um loop que conta de 1 a 10, mas imprime apenas os números ímpares nesse intervalo:
numero_atual = 0
while numero_atual < 10:
numero_atual += 1 # 1
if numero_atual % 2 == 0:
continue
print(numero_atual)
Primeiro, definimos numero_atual como 0. Como é menor que 10, Python entra no loop while. Uma vez dentro do loop, incrementamos a contagem em 1 (1), então numero_atual é 1. A instrução if então verifica o módulo de numero_atual. Se o módulo for 0 (o que significa que numero_atual é divisível por 2), a instrução continue diz ao Python para ignorar o resto do loop e retornar ao início. Se o número atual não for divisível por 2, o resto do loop é executado e Python imprime o número atual.
Cada loop while precisa de uma maneira de parar de rodar para que não continue rodando para sempre. Por exemplo, este loop de contagem deve contar de 1 a 5:
x = 1
while x <= 5:
print(x)
x += 1
Entretanto, se você omitir acidentalmente a linha x += 1, o loop será executado para sempre:
x = 1
while x <= 5:
print(x)
Agora o valor de x começará em 1, mas nunca mudará. Como resultado, o teste condicional x <= 5 sempre será avaliado como True e o loop while será executado para sempre, imprimindo uma série de 1s.
Todo programador acidentalmente escreve um loop while infinito de tempos em tempos, especialmente quando os loops de um programa têm condições de saída sutis. Se seu programa ficar preso em um loop infinito, pressione CTRL+C ou apenas feche a janela do terminal que exibe a saída do seu programa.
Para evitar escrever loops infinitos, teste cada loop while e certifique-se de que o loop pare quando você espera. Se você quiser que seu programa termine quando o usuário digitar um determinado valor de entrada, execute o programa e digite esse valor. Se o programa não terminar, examine a maneira como seu programa manipula o valor que deve fazer o loop sair. Certifique-se de que pelo menos uma parte do programa pode tornar a condição do loop False ou fazer com que ele alcance uma instrução break.
Exercício 04: Escreva um loop que solicite ao usuário que insira uma série de coberturas de pizza até que ele insira um valor 'sair'. Conforme ele insere cada cobertura, imprima uma mensagem dizendo que você adicionará essa cobertura à pizza dele.
Exercício 05: Um cinema cobra preços de ingressos diferentes dependendo da idade da pessoa. Se uma pessoa tem menos de 3 anos, o ingresso é gratuito; se ela tem entre 3 e 12 anos, o ingresso é de 10 reais; e se ela tem mais de 12 anos, o ingresso é de 15 reais. Escreva um loop no qual você pergunta aos usuários a idade deles e, em seguida, informa o custo do ingresso do cinema.
Até agora, trabalhamos com apenas uma informação do usuário por vez. Recebemos a entrada do usuário e então imprimimos a entrada ou uma resposta a ela. Na próxima vez através do loop while, receberíamos outro valor de entrada e responderíamos a ele. Mas para manter o controle de muitos usuários e informações, precisaremos usar listas e dicionários com nossos loops while.
Um loop for é eficaz para percorrer uma lista, mas você não deve modificar uma lista dentro de um loop for porque o Python terá problemas para manter o controle dos itens na lista. Para modificar uma lista enquanto você trabalha nela, use um loop while. Usar loops while com listas e dicionários permite que você colete, armazene e organize muitas entradas para examinar e relatar mais tarde.
Considere uma lista de usuários recém registrados, mas não verificados, de um site. Depois de verificar esses usuários, como podemos movê-los para uma lista separada de usuários confirmados? Uma maneira seria usar um loop while para extrair usuários da lista de usuários não confirmados enquanto os verificamos e, em seguida, adicioná-los a uma lista separada de usuários confirmados. Aqui está a aparência desse código:
# --- Começe com os usuários que precisam de verificação --- #
usuarios_nao_confirmados = ['joão', 'maria', 'lucas'] # 1
usuarios_confirmados = []
# --- Verificar cada usuário até não ter mais nenhum usuário não confirmado --- #
# --- Mover cada usuário verificado para a lista de confirmados --- #
while usuarios_nao_confirmados: # 2
usuario = usuarios_nao_confirmados.pop() # 3
print(f'Usuário verificado: {usuario.title()}')
usuarios_confirmados.append(usuario) # 4
# --- Mostrar todos os usuários confirmados --- #
print('\nOs seguintes usuários foram verificados:')
for usuario_confirmado in usuarios_confirmados:
print(usuario_confirmado.title())
Começamos com uma lista de usuários não confirmados (1) (João, Maria, Lucas) e uma lista vazia para manter os usuários confirmados. O loop while roda enquanto a lista usuarios_nao_confirmados não estiver vazia (2). Dentro deste loop, o método pop() remove os usuários não verificados um de cada vez do final de usuarios_nao_confirmados (3). Como Lucas é o último na lista usuarios_nao_confirmados, seu nome será o primeiro a ser removido, atribuído a usuario e adicionado à lista usuarios_confirmados (4). A seguir vem Maria, depois João.
Simulamos a confirmação de cada usuário imprimindo uma mensagem de verificação e, em seguida, adicionando-os à lista de usuários confirmados. À medida que a lista de usuários não confirmados diminui, a lista de usuários confirmados cresce. Quando a lista de usuários não confirmados está vazia, o loop para e a lista de usuários confirmados é impressa.
No Capítulo 3, usamos remove() para remover um valor específico de uma lista. A função remove() funcionou porque o valor em que estávamos interessados apareceu apenas uma vez na lista. Mas e se você quiser remover todas as instâncias de um valor de uma lista?
Digamos que você tenha uma lista de animais de estimação com o valor 'gato' repetido várias vezes. Para remover todas as instâncias desse valor, você pode executar um loop while até que 'gato' não esteja mais na lista, como mostrado aqui:
pets = [
'cachorro',
'gato',
'cachorro',
'peixe',
'gato',
'coelho',
'gato'
]
print(pets)
while 'gato' in pets:
pets.remove('gato')
print(pets)
Começamos com uma lista contendo várias instâncias de 'gato'. Após imprimir a lista, Python entra no loop while porque ele encontra o valor 'gato' na lista pelo menos uma vez. Uma vez dentro do loop, Python remove a primeira instância de 'gato', retorna para a linha while e então entra novamente no loop quando descobre que 'gato' ainda está na lista. Ele remove cada instância de 'gato' até que o valor não esteja mais na lista, momento em que Python sai do loop e imprime a lista novamente.
Você pode solicitar quantas entradas precisar em cada passagem por um loop while. Vamos fazer um programa de votação em que cada passagem pelo loop solicita o nome e a resposta do participante. Armazenaremos os dados que coletamos em um dicionário, porque queremos conectar cada resposta a um usuário específico:
respostas = {}
# --- Flag para indicar que a pesquisa está ativa --- #
pesquisa_ativa = True
while pesquisa_ativa:
# --- Prompt para o nome da pessoa --- #
nome = input('\nQual o seu nome: ') # 1
resposta = input('Qual montanha você gostaria de escalar um dia: ')
# --- Armazenar a reposta no dicionário --- #
respostas[nome] = resposta # 2
# --- Verificar se mais alguém fará a pesquisa --- #
escolha = input('Outra pessoa responderá a pesquisa (sim/nao): ') # 3
if escolha == 'nao':
pesquisa_ativa = False
# --- Mostrar o resultado da pesquisa --- #
print('\n--- Resultado da pesquisa ---')
for nome, resposta in respostas.items(): # 4
print(f'{nome.title()} gostria de escalar a montanha {resposta.title()}')
O programa primeiro define um dicionário vazio (respostas) e define um sinalizador (pesquisa_ativa) para indicar que a pesquisa está ativa. Enquanto pesquisa_ativa for True, o Python executará o código no loop while.
Dentro do loop, o usuário é solicitado a digitar seu nome e uma montanha que gostaria de escalar (1). Essas informações são armazenadas no dicionário respostas (2), e o usuário é questionado se deseja ou não manter a enquete em execução (3). Se ele digitar sim, o programa entra no loop while novamente. Se ele digitar nao, o sinalizador pesquisa_ativa é definido como False, o loop while para de ser executado e o bloco de código final (4) exibe os resultados da enquete.
Exercício 06: Crie uma lista chamada pedidos_sanduiches e preencha-a com os nomes de vários sanduíches. Em seguida, crie uma lista vazia chamada sanduiches_prontos. Percorra a lista de pedidos de sanduíches e imprima uma mensagem para cada pedido, como Eu fiz seu sanduíche de atum. Conforme cada sanduíche é feito, mova-o para a lista de sanduíches prontos. Depois que todos os sanduíches forem feitos, imprima uma mensagem listando cada sanduíche que foi feito.
Exercício 07: Usando a lista pedidos_sanduiches do exercício 6, certifique-se de que o sanduíche 'pastrami' apareça na lista pelo menos três vezes. Adicione código perto do início do seu programa para imprimir uma mensagem dizendo que o restaurante ficou sem pastrami e, em seguida, use um loop while para remover todas as ocorrências de 'pastrami' de pedidos_sanduiches. Certifique-se de que nenhum sanduíche de pastrami acabe em sanduiches_prontos.
Exercício 08: Escreva um programa que faça uma pesquisa com os usuários sobre suas férias dos sonhos. Escreva um prompt similar a Se você pudesse visitar um lugar no mundo, para onde iria?. Inclua um bloco de código que imprima os resultados da pesquisa.
Neste capítulo, você aprendeu como usar input() para permitir que os usuários forneçam suas próprias informações em seus programas. Você aprendeu a trabalhar com entrada de texto e numérica e como usar loops while para fazer seus programas rodarem pelo tempo que seus usuários quiserem. Você viu várias maneiras de controlar o fluxo de um loop while definindo um sinalizador ativo (flag), usando a instrução break e usando a instrução continue. Você aprendeu como usar um loop while para mover itens de uma lista para outra e como remover todas as instâncias de um valor de uma lista. Você também aprendeu como os loops while podem ser usados com dicionários.
No Capítulo 8, você aprenderá sobre funções. Funções permitem que você divida seus programas em pequenas partes, cada uma das quais faz um trabalho específico. Você pode chamar uma função quantas vezes quiser e pode armazenar suas funções em arquivos separados. Ao usar funções, você poderá escrever um código mais eficiente, mais fácil de solucionar problemas e manter, e que pode ser reutilizado em muitos programas diferentes.