01 / 12
Lógica de Programação · OBI · Aula 01

Variáveis,
Entrada & Saída

Os primeiros tijolos de qualquer programa — declarar valores, conversar com o usuário e fazer operações, em Python e JavaScript lado a lado.

ProfessorGuilherme Antunes FocoPreparação para a OBI Duração50 minutos
02 / 12
Objetivo da Aula

Ao final, você será capaz de.

01

Entender o que é uma variável e como declarar em Python e JS

02

Identificar os tipos de dados básicos (número, texto, booleano)

03

Usar entrada e saída (input/prompt, print/console.log) e converter tipos

04

Usar operadores aritméticos e de comparação corretamente

03 / 12
Introdução · Analogia

Caixa com Etiqueta 📦

Uma variável é como uma caixa rotulada:

  • A etiqueta é o nome da variável
  • Dentro da caixa tem um valor guardado
  • Podemos trocar o conteúdo da caixa a qualquer momento

Python e JavaScript usam a mesma ideia — só muda a forma de escrever.

nome
"Ana"
idade
15
nota
8.5
aprovado
true
04 / 12
Conceito · Parte 1

Declarando Variáveis ✍️

Atribuir é usar o =. A grande diferença: em JavaScript você precisa de let (ou const) antes do nome.

Python
nome = "Ana"
idade = 15
nota = 8.5

print(nome, idade, nota)
JavaScript
let nome = "Ana";
let idade = 15;
let nota = 8.5;

console.log(nome, idade, nota);
❓ Pergunta

O que acontece se eu escrever idade = idade + 1 logo depois? E se eu usar const em vez de let no JS?

05 / 12
Conceito · Parte 2

Tipos de Dados 🎨

Toda variável guarda algo de um tipo. Os quatro tipos básicos:

Inteiro15   −3   0Python: int · JS: number
Decimal8.5   3.14Python: float · JS: number
Texto (string)"Ana"   'OBI'Python: str · JS: string
BooleanoTrue / False   true / falsePython: bool · JS: boolean
⚠️ Atenção: em Python é True / False (maiúsculo). Em JavaScript é true / false (minúsculo). Trocar isso é o erro mais comum de quem alterna entre as duas linguagens.
06 / 12
Conceito · Parte 3

Entrada & Saída 💬

Todo programa se comunica: mostra coisas na tela (saída) e recebe dados do usuário (entrada).

📤 Saída — mostrar na tela

Python → print
print("Olá, OBI!")
print("Nome:", nome, "Idade:", idade)
print(f"Olá, {nome}!")   # f-string
JavaScript → console.log
console.log("Olá, OBI!");
console.log("Nome:", nome, "Idade:", idade);
console.log(`Olá, ${nome}!`);   // template

📥 Entrada — pedir ao usuário

Python → input
nome = input("Seu nome: ")
idade = int(input("Idade: "))
nota = float(input("Nota: "))
JavaScript → prompt
let nome = prompt("Seu nome:");
let idade = Number(prompt("Idade:"));
let nota = parseFloat(prompt("Nota:"));
⚠️ Importante: input() e prompt() sempre retornam texto. Se precisar de número, converta com int() / float() (Python) ou Number() / parseFloat() (JS).
07 / 12
Mão na massa · Prática

🟢 Praticar: Variáveis

Fácil

Situação: Crie a ficha de um aluno com nome, idade, média e se está aprovado. Depois mostre tudo na tela.

Python — esqueleto
nome = "..."
idade = ...
media = ...
aprovado = ...

print("Aluno:", nome)
print("Idade:", idade)
print("Média:", media)
print("Aprovado?", aprovado)
JavaScript — esqueleto
let nome = "...";
let idade = ...;
let media = ...;
let aprovado = ...;

console.log("Aluno:", nome);
console.log("Idade:", idade);
console.log("Média:", media);
console.log("Aprovado?", aprovado);
08 / 12
Conceito · Parte 3

Operadores 🧮

Aritméticos produzem números. Relacionais produzem booleanos.

Python
a = 10
b = 3

a + b     # 13
a - b     # 7
a * b     # 30
a / b     # 3.333...
a // b    # 3    (divisão inteira)
a % b     # 1    (resto)

a > b     # True
a == b    # False
a != b    # True
JavaScript
let a = 10;
let b = 3;

a + b;    // 13
a - b;    // 7
a * b;    // 30
a / b;    // 3.333...
Math.floor(a/b);  // 3
a % b;    // 1

a > b;    // true
a === b;  // false
a !== b;  // true
⚠️ Em JS use === (três iguais) para comparar. == faz conversões estranhas ("5" == 5 vira true).
09 / 12
Mão na massa · Prática

🟡 Praticar: Operadores

Médio

Situação: Calcule a média de 3 notas e descubra se o aluno passou (média ≥ 6). Imprima a média e o resultado booleano.

Python
n1 = 7.5
n2 = 6.0
n3 = 8.2

media = (n1 + n2 + n3) / 3
passou = media >= 6

print("Média:", media)
print("Passou?", passou)
JavaScript
let n1 = 7.5;
let n2 = 6.0;
let n3 = 8.2;

let media = (n1 + n2 + n3) / 3;
let passou = media >= 6;

console.log("Média:", media);
console.log("Passou?", passou);
❓ Pergunta

Se eu trocar n1 = 4.0, o que será impresso em passou?

10 / 12
Hora de praticar

Exercícios para Praticar 💪

Fácil

Crie 3 variáveis (nome, ano_nascimento, ano_atual). Calcule e imprima a idade do usuário.

Médio

Peça o preço de um produto e o percentual de desconto. Imprima o valor final a pagar.

Desafio

Peça peso (kg) e altura (m). Calcule e imprima o IMC formatado com 2 casas decimais (peso / altura**2).

Faça cada um em Python e em JavaScript. Compare as versões — é aí que a aprendizagem acontece.

11 / 12
Projeto Final

Desafio: Média de 3 Notas 🏆

1

Peça o nome do aluno (input / prompt)

2

Peça 3 notas — converta para float / parseFloat

3

Calcule a média aritmética: (n1 + n2 + n3) / 3

4

Mostre "Aluno: X — Média: Y" com 2 casas decimais

Python — esqueleto
nome = input("Nome: ")
n1 = float(input("Nota 1: "))
n2 = float(input("Nota 2: "))
n3 = float(input("Nota 3: "))

media = (n1 + n2 + n3) / 3

print(f"Aluno: {nome}")
print(f"Média: {media:.2f}")
JavaScript — esqueleto
let nome = prompt("Nome:");
let n1 = parseFloat(prompt("Nota 1:"));
let n2 = parseFloat(prompt("Nota 2:"));
let n3 = parseFloat(prompt("Nota 3:"));

let media = (n1 + n2 + n3) / 3;

console.log(`Aluno: ${nome}`);
console.log(`Média: ${media.toFixed(2)}`);
⚠️ Dica: sem o float() / parseFloat(), o programa vai juntar as notas como texto em vez de somar! Teste sem converter pra ver o que acontece.
12 / 12
Encerramento

O que aprendemos hoje

  • Variáveis → caixas rotuladas que guardam valores (com ou sem let)
  • Tipos → número, texto, booleano (True vs true)
  • Entrada e saídainput/prompt (sempre texto!) e print/console.log
  • Conversãoint(), float(), Number(), parseFloat()
  • Operadores → aritméticos (produzem número) e relacionais (produzem booleano)
📚 Próxima aula

Condicionais (if, elif/else if, else) e operadores lógicos (and/or/not · &&/||/!) — tomar decisões no código.

❓ Pergunta

Qual das duas linguagens pareceu mais "estranha" pra você hoje? O que foi mais difícil: a sintaxe ou a ideia de converter tipo depois do input?