• Python
  • 03. Entrada e saída do terminal

Recebendo dados no terminal#

Relembrando a aula passada...#

Vamos começar relembrando o que aprendemos na aula passada com um exercício guiado.

Acessar exercício

Exercício 1

Faça uma função que recebe um número \(x\) e calcula \(-1^x\). Esta função deverá se chamar revisao_funcao. Por enquanto não rode os testes ainda, vamos testar manualmente nossa função.

Mude para a aba Explorador, encontre e abra o arquivo exemplo.py deste exercício. Ele deverá estar na pasta python/funcao/revisao_funcoes. Modifique-o para mostrar revisao_funcao(0). Qual é o resultado mostrado?

Resposta

O resultado de \((-1)^0\) é \(1\).

Se você testou o seu código e o resultado obtido foi -1, talvez você tenha esquecido de utilizar os parênteses. Note que a operação de potenciação possui precedência sobre a operação de subtração. Desta forma, o interpretador Python irá resolver a operação 1**0 e depois aplicar o sinal de negativo - sobre o resultado.

Exercício 2

Agora que você consertou seu programa, quais os resultados de revisao_funcao considerando os argumentos 1, 2 e -1?

Resposta

O resultado da expressão \((-1)^1\) é \(-1\), o resultado de \((-1)^2\) é \(1\) e o resultado de \((-1)^-1\) é \(-1\).

Exercício 3

Vamos refletir um pouco. O que a sua função faz?

Resposta

A função \(f(x) = (-1)^x\) verifica se \(x\) é par ou ímpar. Sempre que \(x\) for par a função devolve o número 1 e sempre que \(x\) for ímpar a função devolve o número -1.

Exercício 4

Considere a função Python que você implementou para \(f(x) = (-1)^x\). Você consegue sugerir um nome mais representativo para esta função?

Resposta

Uma sugestão seria verifica_par_impar.

Exercício 5

Então vamos fazer o exercício Verifica se é par ou ímpar.

Acessar exercício

Pedindo dados para o usuário#

Até agora fizemos programas que, ao serem executados, sempre fazem exatamente a mesma coisa. Seria interessante permitir algum tipo de interação com o usuário. Por enquanto estamos desenvolvendo programas que imprimem valores no terminal, então também vamos utilizar o terminal para receber dados digitados pelo usuário.

Em Python, a função input() pede um texto para o usuário e retorna este texto ao programa. Você pode, por exemplo, guardar esse texto em uma variável para usar em seguida.

Exercício 6

Teste o seguinte programa no seu computador. Você pode digitá-lo no arquivo teste_input.py criado no último exercício.

# Pede a cor favorita para o usuário digitar
cor_favorita = input('Qual a sua cor favorita? ')

# Imprime a cor favorita do usuário.
print(cor_favorita)

O programa acima deve imprimir Qual a sua cor favorita? (note que existe um espaço após a interrogação) no terminal e parar. Nesse momento ele está esperando que o usuário digite algo no terminal. Até que isso aconteça, o programa fica parado na chamada da função input().

Importante

Você se lembra do que falamos no handout de operações matemáticas? O programa é executado uma linha após a outra.

Até agora os programas rodavam tão rápido que isso não parecia fazer diferença, mas com o input isso muda. O resto do programa não é executado até que o usuário digite algo no terminal e aperte enter.

Exercício 7

Digite algo e veja a saída do programa.

Exercício 8

Agora considere o codigo a seguir. Sem rodar ele e considerando que o usuário digitou Vermelho, o que seria impresso no terminal após o usuário digitar?

cor_favorita = input('Qual a sua cor favorita? ')
cor_favorita = 'Amarelo'


print(cor_favorita)

Resposta

Será impresso Amarelo no terminal.

Na primeira linha cor_favorita recebe o valor Vermelho digitado pelo usuário. Porém, logo em seguida fazemos uma nova atribuição e substituímos esse valor por Amarelo. Desta maneira, quando chegamos no print a variável cor_favorita tem o valor da última atribuição que fizemos (que é Amarelo).

Se quiser, agora execute o programa veja seu comportamento.

Exercício 9

Agora considere o codigo a seguir. Sem rodar ele e considerando que o usuário digitou Vermelho, o que seria impresso no terminal após o usuário digitar?

cor_favorita = 'Amarelo'
cor_favorita = input('Qual a sua cor favorita? ')

print(cor_favorita)

Resposta

Foi impresso Vermelho no terminal.

Ao início do programa, a variável cor_favorita recebe o valor Amarelo. Mas logo em seguida, recebe o valor do comando input. Como o usuário digitou o valor Vermelho, então este valor foi armazenado na variável cor_favorita. Desta forma, o comando print(cor_favorita), imprimiu o texto Vermelho no terminal.

Se quiser, agora execute o programa veja seu comportamento.

Praticando o uso do input#

Exercício 10

Crie um arquivo de nome testes_soma.py na pasta do handout de hoje. Vamos usá-lo para os próximos exercícios desta seção.

Exercício 11

Considere a seguinte função.

# Função que soma dois números.
def soma(x, y):
    z = x + y
    return z

Se a digitarmos no arquivo testes_soma.py, sem rodar ela, qual é a saída esperada? Depois de responder rode e veja o que acontece.

Resposta

O programa acima não vai fazer nada. Nós só estamos definindo a função soma, mas não estamos pedindo para o Python executá-la (ou seja, não estamos chamando a função).

Exercício 12

Então o que devemos adicionar ao código para chamar a função soma criada anteriormente e imprimir a soma dos números 14 e 28.

Resposta

A forma correta de calcular a soma dos números 14 e 28 utilizando a função soma é:

# Função que soma dois números.
def soma(x, y):
    z = x + y
    return z

a = 14
b = 28

# Testando nossa função
resultado = soma(a, b)
print(resultado)

Se você escolheu alguma das outras opções, tente descobrir onde está o problema.

Exercício 13

Modifique seu programa para que tenha a resposta correta e rode-o. Ao executar o programa, seu programa deve ter o comportamento descrito na resposta do exercício anterior.

Exercício 14

Ao invés de deixarmos números fixos para testar a função, vamos perguntar para o usuário quais números ele quer somar. Qual comando Python devemos utilizar para fazer isso?

Resposta

Para interagir com o usuário utilizamos o comando input. Este comando possibilita receber valores digitados no terminal pelo usuário.

Exercício 15

Considere que para o exercício você chegou no código a seguir.

# Função que soma dois números.
def soma(x, y):
    z = x + y
    return z

# Lendo os dois números.
a = input('Entre com o primeiro número: ')
b = input('Entre com o segundo número: ')

# Somando os dois números.
resultado = soma(a, b)
print(resultado)

Ao testar o código acima digitando o número 14 e o número 28. Qual foi o resultado impresso no terminal? Você pode rodar o código neste exercício.

Resposta

Seu programa funcionou? Deu algum erro? Fez o que você esperava? Vamos tentar entender o que está acontecendo.

Lembre-se que a função input() devolve o texto digitado pelo usuário. Na nossa soma, queremos somar números, não texto. Ou seja, estamos fazendo a seguinte operação '14' + '28', ao invés de, 14 + 28.

Vamos tentar entender melhor o que está acontecendo a seguir.