Aula 3: Primeiro programa

Objetivos

  • Construir uma sequência de instruções dentro do ambiente (IDLE)
  • Compreender a lógica dos operadores aritméticos básicos dentro do console.
  • Trabalhar com entradas e saída de dados
  • Familiarizar com a sintaxe da linguagem.
  • Entender a metodologia para criar um primeiro programa

Preparação

Materiais

  • Ambiente IDLE (Veja na seção de ajuda: Como instalar o Python)
  • Console do IDLE.
  • Projetor para executar os exemplos (opcional)
  • Lousa para escrever os códigos

Atividades

Lembre-se

Nas primeiras aulas há muitas novidades, comandos novos, ambiente, termos em inglês. Trabalhe sem pressa com os alunos e anote o feedback.

  1. Inicialize o console do IDLE e introduza o papel do console para execução de códigos rápidos, no modelo: comando → resposta.

Instigue os alunos a experimentarem o console, introduza as instruções para uma calculadora simples.

Operação Exemplo
Adição (+) 4 + 3
Subtração (-) 10 - 6
Multiplicação (*) 7 * 6
Divisão (/) 9 / 3
Resto (%) 9 % 3

É importante neste momento:

  • Construir expressões matemáticas.
  • Demonstre a prioridade dos operadores matemáticos.
  • Lembrar que representação de um número fracionário utiliza . e não ,.

Note que no console do IDLE não precisamos de utilizar o comando print() para obtermos o resultado de uma sentença aritmética, trabalhe com eles mostrando que o console vai ser um espaço para testes no futuro, disponível sempre que eles precisarem validar uma idéia.

Volte para o editor de textos que será a base das aulas, relembre duas coisas com eles:

No editor fale para eles trabalharem a sequência de operadores matemáticos.




(Operações)

Veja o arquivo (aula3-exemplo.py)

Dificuldades

Se você notar alguma dificuldade grave de absorção dos conteúdos, utilize os videos da Khan Academy como complementação!

  1. Depois apresente como podemos receber uma informação do usuário, apresente o comando input().

Trabalhe a definição do comando input() através do seu uso para incrementar a funcionalidade do código com operações aritméticas. Como podemos fazer um programa que faça operações com os valores que o usuário entrar e não mais com valores fixos?

Mostre como o input funciona:

print("Entre com um valor: ")
resposta = input()

A função input espera o usuário entrar com o valor e apertar a tecla Enter (⏎), teste ela inicialmente sem parâmetro e depois apresente a funcionalidade de embutir a pergunta dentro do comando. O código equivalente ao apresentado acima ficaria:

resposta = input("Entre com um valor: ")

Apresente e interprete com os alunos a sentença acima, algo como:

Espere o usuário entrar com um valor referente a pergunta Entre com um valor: (que é definida pelo programador) e guarde esta resposta dentro de uma variável chamada resposta.

Note que temos dois conceitos importantes aqui: atribuição e variável.

  • o símbolo de igual = não é uma comparação e sim atribuição
  • uma variável é um nome que guarda um valor para usarmos depois.

O exemplo aula3-exemplo3-variavel.py contém exemplos de como declarar uma variável, caso haja dúvida recorra a ele como exemplo.

Variáveis são “gavetas” virtuais (5 minutos)

Faça uma pausa na aula para construir uma analogia, fomente algumas perguntas para entendermos o que é uma variável. Pergunte para eles como uma gaveta funciona? O que podemos guardar lá? Posso guardar papel? E um lápis? Quais a limitações físicas? Depois da participação dos alunos mostre que as variáveis são exatamente como gavetas, elas armazenam coisas, de diferentes tipos e são limitados por um espaço virtual. Comente que nas primeiras aulas iremos utilizar as variáveis para guardar conteúdo do tipo texto e números, mas que aprenderemos no futuro a guardar qualquer tipo de informação numa variável.

Exercícios:

  1. Definir uma variável para armazenar o nome e a idade e apresentar o resultado.
  1. Definir uma variável para armazenar o resultado de uma conta matemática.
  1. Criar uma expressão matemática (usando as 4 operações) que resultado no número 100. Armazenar e imprimir o resultado numa variável.
  1. Um código que faça uso do comando input para pedir pro usuário a idade.
  1. Um código que calcule o ano que o usuário nasceu a partir da idade.

Primeiro programa: a calculadora

Depois da pausa para trabalhar o conceito de atribuição e variáveis volte e apresente a proposta de construir uma calculadora simples, primeiro estruture o o quê depois o como.

O quê pretendemos ter na nossa calculadora:

  • Quatro operações básicas.
  • Trabalhar com dois números.
  • Apresentar o resultado.

Como faremos? Verifique se temos todos os conhecimentos necessários:

  • Aprendemos como trabalhar com as operações matemáticas ✓
  • Sabemos como receber dados do usuário do programa input. ✓
  • Sabemos como apresentar o resultado com o comando print

Comece fazendo o programa no console e passe o restante para eles trabalharem. Para esta parte os aula3-exemplo2-errado.py e aula3-exemplo2-certo.py irão ajudar a preparar o exemplo)

>>> número = input("Entre com um número: ")
>>> conta = número + 1

O programa acima contém um erro: pare antes de dar o [Enter] e pergunte para os alunos qual valor será armazenado dentro da variável conta? Colha algumas respostas e depois tecle enter para continuar a execução do programa.

Observação

Uma das habilidades de um bom programador é a observação. Vamos sempre olhar para a resposta que o computador da pra sabermos como lidar com as respostas.

Qual executamos a linha conta = número + 1 obtemos o seguinte erro:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly

A última linha TypeError: Can't convert 'int' object to str implicitly nos dá uma pista sobre o problema, vá construindo a solução com os alunos. Ela indica que há um erro de tipo TypeError seguido por uma mensagem que indica que não pode fazer a conversão do objeto do tipo ‘int’ para ‘str’ de forma implícita. Como saber o tipo da informação que esta armazenado numa variável?

Mas como saber o tipo da variável? Apresente o comando type() e introduza uma atividade para criarmos o mapa de tipos de dados. Mostre o arquivo aula3-exemplo4-tipos.py como exemplo.

Exercícios:

  1. Criar duas variáveis, uma que armazena texto e outra que armazena número, verificar o tipo de cada uma com o comando type().
  1. Qual o tipo de dados que o comando input retorna?

Se soubermos o tipo de dado que trabalhamos, podemos fazer um mapa para conversões.

O quê? Exemplos Tipo no Python Comando para converter
Números inteiros 1, 2, 3, 4, 5, ..., 99, ... ‘int’ int()
Números fracionários 0.0001, 0.5, 3.14159, 12.5, ... ‘float’ float()
Texto "10", "3.14159", "nome" ‘string’ str()

Voltando ao exemplo da calculadora, precisamos converter o valor do input que é tipo texto para inteiro e só assim fazer a conta, volte no exemplo que ocasionou o erro e utilize a função de conversão.

numero = int( input("Entre com um número: ") )
conta = numero + 1
print(conta)

Exercícios:

  1. Faça um programa para somar dois números quaisquer.
  1. Faça um programa para subtrair dois números quaisquer.
  1. Faça um programa para dividr dois números quaisquer.
  1. Faça um programa para multiplicar dois números quaisquer.

Reflexão

Trabalhe os últimos 10 minutos da aula uma breve discussão do que foi visto. Tente destacar as principais dificuldades encontradas durante a aula, instigue nos alunos a comentar sobre alguns dos tópicos visto em sala:

  • Operações
    • Quais outras operações poderiam ser utilizadas na calculadora?
  • Variáveis
    • Como que as variáveis facilitam nossa vida?
    • Como escolher um nome para a variável? Dicas?
  • A dupla: print/input
    • Qual a função destes dois comandos?
    • Qual a diferença de usar o input() e o input("<pergunta>")?
  • Tipos
    • Quais são os tipos mais comuns até o momento?
    • Na sua casa suas gavetas guardam tipos diferentes de coisas?
  • Conversões de tipos
    • Qual a necessidade de converter um valor?
    • Qual o tipo que o comando input() retorna?

Comentários: Educador, clique no link abaixo e utilize este espaço para fazer comentários sobre este plano

Show Comments