Python 3: Entrada de Dados e Resolvendo os Primeiros Exercícios

Aulas

Aulas do Curso de Python 3

  1. Configurando o Ambiente e Primeiro Programa
  2. Variáveis e Comando Escreva
  3. Entrada de Dados e Resolvendo Primeiro Exercício
  4. Estruturas de Decisão
  5. Resolução de Exercícios Usando Estruturas de Decisão
  6. Listas
  7. Estruturas de Repetição

Nessa lição vamos aprender como processar entrada de dados pelo teclado.

Entrada de Dados

Em Python 3, diferente de outras linguagens a leitura da entrada acontece linha por linha, ou seja, cada comando de leitura irá processar uma linha completa e não apenas um dos elementos da linha. Por exemplo, o código abaixo irá ler uma linha da entrada e armazenará o valor na variável VV e imprimir o valor armazenado em VV na tela, para fazer isso usaremos o comando input.

V = input()
print(V)

Quando executamos esse código na PyCharm, você notará que o programa não irá imprimir nenhum valor de imediato, pois seu programa está esperando você digitar o valor da entrada, vamos entrar a frase "valor da entrada" e apertar ENTER.

Figura 1

Veja que o texto que você escreveu como entrada do programa aparece em verde, enquanto o texto de saída aparece em branco.

Perceba que usando o comando input você pegou o valor de toda a linha e armazenou na variável VV como uma variável do tipo str, mas o que fazer quando queremos uma entrada de outro tipo?

Usando o comando input você não pode escolher o tipo de dados você irá entrar no seu programa, então você deve recebe-lo como str e só então fazer a conversão para o tipo que você espera. Por exemplo, vamos supor que você quer receber dois inteiros, um em cada linha, armazena-los em duas variáveis e apresentar como saída a soma desses dois inteiros.

a = input()
b = input()

a = int(a)
b = int(b)

print(a+b)

Note que a saída desse programa é também um valor inteiro. Pois quando se soma um inteiro com outro inteiro o resultado é um valor inteiro. Agora experimente o código abaixo, sem a transformação de tipos de variáveis:

a = input()
b = input()

print(a+b)

Se entramos o valor 18 e 45 o programa irá imprimir 1845, pois a operação que está sendo realizada é adicionar a string "45" ao final da string 18.

Figura 2

Ok, agora você já sabe receber variáveis do tipo desejado, pois basta recebe-las como string e realizar a conversão. Mas e como fazer quando você quer escrever vários números na mesma linha, e não em linhas separadas como no exmeplo acima?

Para resolver esse problema, nós iremos ler a linha de entrada, e separar os valores lidos para armezar em múltiplas variáveis usando o comando split (traduzido como "separar" em português). Veja no código abaixo como receber dois valores digitados na mesma linha da entrada.

a, b = input().split()

a = int(a)
b = int(b)

print(a+b)

Se rodarmos na PyCharm veremos:

Figura 3

Fácil, não é mesmo?

Exercícios

Agora você já pode resolver alguns exercícios de programação. Vamos começar por dois exercícios básicos

O primeiro exercício eu imagino que você já sabe como resolver, se você tiver alguma dificuldade basta rever o que discutimos no começo dessa aula. O segundo nós vamos resolver agora. O enunciado diz: "Faça um programa que leia dois números reais AA e BB digitados pelo teclado e imprima a divisão de AA por BB".

Beleza, vamos começar nosso código. Primeiro precisamos ler os valores da entrada e armazenar nas variáveis, se você ler o enunciado do problema (usando o link acima) você verá que as duas variáveis estão na mesma linha, então precisamos usar não só o input, mas também vamos precisar do comando split, conforme aprendemos anteriormente.

A, B = input().split()

A = float(A)
B = float(B)

Perceba que além de ler as variáveis nós precisamos transformá-las de string para uma variável que armazena valores reais (float), já que o enunciado do problema afirma que a entrada contém dois valores reais.

Precisamos então imprimir o valor da divisão AB\frac{A}{B}, mas note que o problema pede que você imprima a saída com duas casas decimais. Para isso vamos usar uma técnica que aprendemos na aula passada, que limita a impressão a uma certa quantidade de casas decimais.

print(A/B) #sem limitação de casas decimais, o resultado pode conter uma, duas, três ou mais casas na resposta.

print("{:.2f}".format(A/B)) #independente da quantidade de casas decimais da resposta, imprimiremos apenas duas casas

Com isso completamos a resolução do problema, o código completo segue abaixo:

A, B = input().split()

A = float(A)
B = float(B)

print("{:.2f}".format(A/B))

Se você rodar esse código na PyCharm e entrar os valores 5 e 2 você terá o seguinte resultado.

Figura 4

Note que a única saída do seu programa (em branco) é o resultado da divisão, se você imprimir alguma mensagem, além da resposta esperada pelo Juiz, seu código não estará correto. Para aprender mais sobre como submeter problemas para juizes online veja nosso tutorial.

Conclusão

Agora você já pode resolver alguns problemas de programação. Tente resolver os exercícios acima, se você tiver alguma dificuldade, volte para essa aula e veja o que você está errando, se mesmo assim ainda tiver alguma dúvida, deixe um comentário, estaremos aqui para lhe ajudar.

Comentários