Aulas do bloco

← Todas as aulas
Pythonaula 328/07/20261h32

Variáveis: nomes, tipos primitivos e aritmética no Python

Detalha regras de nomes de variáveis, os quatro estilos de naming (snake, camel, pascal e kebab), comentário com #, tipos bool e float com separador decimal em ponto e precedência com parênteses e variável intermediária, tudo com execuções ao vivo de álbum e operações; retoma variável, string, atribuição e snake case da aula 2. TP1 já liberado, mas critérios de entrega ficam para a aula de sexta.

▶ Abrir gravaçãoIniciar exercíciosMédia62/1000/24 exercícios

Para revisar rápido

Resumo da aula

7 pontos
  • O TP1 já foi liberado: leiam as questões, tentem fazer aos poucos e, na sexta-feira, a aula será de leitura e explicação da entrega.

  • Variável é uma etiqueta que guarda um valor; o sinal = lê-se 'atribua o valor à variável'.

  • Nomes não podem ter espaços, nem símbolos (exceto o underline _) e não podem começar com número.

  • Boas práticas: sem acentos, nomes indicativos e snake case, o padrão do Python para variáveis.

  • Tipos apresentados: string (texto entre aspas), int (inteiro), bool (True ou False) e float (decimal com ponto).

  • Os operadores +, -, * e / funcionam como na matemática; o Python respeita precedência e parênteses.

  • Multiplicação ou divisão com inteiros retorna float, mesmo quando o resultado é inteiro, como 15.0.

Guia de estudo

TP1 e o ritmo da semana

O TP1 já está liberado. A orientação é ler as questões agora e tentar resolvê-las aos poucos, no mesmo ritmo em que o conteúdo avança. Deixar o trabalho inteiro para o fim de semana prejudica a retenção: o que foi visto na aula esfria e precisa ser reaprendido na pressa. Na sexta-feira a aula será majoritariamente para a leitura do TP e a explicação da entrega. Um detalhe já adiantado: cada questão do TP deve ficar em um bloco de código. Os demais detalhes da entrega saem na sexta. Esta aula continua na sexta-feira, então trate variáveis, tipos e aritmética como base das questões, não como um capítulo isolado.

Objetos, variáveis e atribuição

Em Python, qualquer informação é representada como objeto. Dado pode ser visto como uma subcategoria mais primitiva, mas não dá para representar informação sem objeto. A variável funciona como uma etiqueta colada nesse valor: organiza o código e evita repetição. Em vez de copiar o mesmo valor várias vezes, você dá um nome e reutiliza esse nome. O sinal = é o símbolo de atribuição. Não se lê ‘é igual a’; lê-se ‘atribua o valor à variável’. O interpretador lê e interpreta as instruções. Se a instrução não é clara ou viola uma regra, ele não adivinha a sua intenção: lança erro. Uma linha iniciada com # é comentário. O Python ignora essa linha por completo; o texto fica só para quem lê o código. Comentários longos ainda não foram detalhados. A sequência típica desta aula é: comentar se preciso, atribuir um valor a um nome e depois reutilizar essa etiqueta em um print ou em um cálculo.

Atribuição com comentário

# etiqueta para guardar um valor
ano = 1991
print(ano)

A linha com # é ignorada pelo Python. O = atribui o inteiro à variável ano. O print mostra o valor guardado pela etiqueta.

Regras de nomes e erro de sintaxe

O interpretador só aceita nomes que seguem as regras da linguagem. Três regras foram destacadas. Primeira: espaços não são permitidos. Um nome escrito como duas palavras gera erro de sintaxe, porque deixa de ser um identificador único e o Python não tenta adivinhar o que você quis dizer. Segunda: símbolos não são permitidos, com uma exceção — o underline (_), que substitui o espaço. Terceira: números são permitidos no nome, mas o nome da variável não pode começar com número. Letras são permitidas, inclusive maiúsculas e com acento, pelo menos do ponto de vista da sintaxe. Erro de sintaxe acontece quando o código não segue essas regras. Por isso o naming começa pela legalidade: se o nome é ilegal, o programa nem chega a executar. Só depois entram estilo e clareza.

Underline no lugar do espaço

meu_nome = "Joao"
print(meu_nome)

O espaço quebraria o nome e geraria erro de sintaxe. O underline mantém uma única etiqueta legal.

Número no nome, mas não no começo

aluno1 = "Pedro"
print(aluno1)

Dígitos podem aparecer depois da primeira letra. Começar com número tornaria o nome inválido.

Boas práticas de naming

Naming é o ato de dar nome às variáveis. As boas práticas não são obrigação do interpretador; servem para padronizar e facilitar a leitura. Evite acentos nos nomes, mesmo que a sintaxe aceite, para reduzir problemas de compatibilidade entre sistemas. Use nomes indicativos: o nome deve revelar a informação guardada. Prefira nomes longos e claros a abreviações. No Python, o estilo padrão de variáveis é o snake case: letras minúsculas com palavras separadas por underline. Camel case (primeira palavra minúscula e as seguintes com inicial maiúscula) é comum em JavaScript e Java, não em variáveis Python. Pascal case é como o camel case, mas a primeira letra também é maiúscula; no Python esse estilo nomeia classes, conceito posterior — por isso não use Pascal case em variável. Kebab case (minúsculas separadas por hífen) aparece em arquivos e URLs, não em variáveis: o hífen seria lido como subtração. Pode-se usar snake case em outras linguagens, mas naming é convenção cultural. Seguir o padrão da linguagem deixa o código homogêneo. Espaços em torno de operadores não são obrigatórios; existem por legibilidade, para o código não ficar claustrofóbico. Ponte com a seção anterior: primeiro o nome precisa ser legal; depois ele precisa ser snake case, sem acento e com significado.

Snake case com nome indicativo

nome_do_album = "Album exemplo"
print(nome_do_album)

Minúsculas e underline separam as palavras. O nome já diz o que a etiqueta guarda, no estilo padrão do Python.

Tipos primitivos e o exemplo do álbum

Foram apresentados quatro tipos: string, int, bool e float. Chamamos de tipos primitivos os blocos básicos de informação, usados para montar dados mais complexos. A analogia da aula: primitivos são como átomos, a menor unidade; o restante se compõe a partir deles. Em Python, estritamente, tudo é objeto e não existem primitivos — essa classificação é uma licença pedagógica para começar. String representa texto e fica entre aspas. Int representa números inteiros, como ano de lançamento ou idade. Bool é o tipo lógico de sim ou não; os valores são True e False, com inicial maiúscula e sem aspas. Se houver aspas, vira string. Float é o número de ponto flutuante, com parte decimal, usado para dinheiro, temperatura e afins. No Python o separador decimal é o ponto, não a vírgula, porque a linguagem segue a convenção americana. No armazenamento e no cálculo usa-se sempre ponto. A vírgula brasileira entra só na hora de exibir, conforme a localização e o idioma do usuário. O exemplo da aula colocou lado a lado os dados de um álbum: banda e álbum como string, ano como int, recomendo como bool e lucro como float. Esses tipos existem na maioria das linguagens. Java tem strings, ints, floats e booleanos; JavaScript tem strings, booleanos e um tipo number único. Python é o fio condutor desta disciplina porque os conceitos se transferem e porque é uma das linguagens mais fáceis para começar, já que esconde muita complexidade. A etiqueta da seção de naming agora ganha um valor com tipo.

Álbum com string, int, bool e float

banda = "Nome da banda"
album = "Nome do album"
ano = 1991
recomendo = True
lucro = 12.5
print(banda)
print(album)
print(ano)
print(recomendo)
print(lucro)

banda e album são texto entre aspas. ano é inteiro. recomendo é True, sem aspas. lucro usa ponto, nunca vírgula.

Aritmética, precedência e o 15.0

Os operadores aritméticos básicos são + (soma), - (subtração), * (multiplicação) e / (divisão). Multiplicação não se escreve com x e divisão não se escreve com contrabarra. Eles funcionam como na matemática. O Python respeita a precedência: multiplicação e divisão acontecem antes de soma e subtração. Parênteses mudam essa ordem: o que está dentro é resolvido primeiro. Quando o cálculo fica longo, use variáveis intermediárias: calcule uma parte, guarde, calcule outra e combine os resultados. Qualquer multiplicação ou divisão feita com inteiros retorna float, mesmo que o resultado pareça inteiro — o exemplo da aula foi 15.0. Dá para formatar a exibição, mas o valor continua float. Transformar esse float em outro tipo (conversão) foi só mencionado e fica para outra aula. Fazer o TP junto com o conteúdo ajuda a reter. Recomenda-se também estudar estatística, SQL e networking. O conteúdo continua na sexta-feira.

Precedência e parênteses

print(2 + 2)
print(2 + 2 * 3)
print((2 + 2) * 3)

2 + 2 resulta 4. Em 2 + 2 * 3 a multiplicação vem primeiro, então o resultado é 8. Os parênteses forçam a soma antes e mudam o valor para 12.

Cálculo dividido em a, b e resultado

a = 2 + 2
b = 2 * 3
resultado = a + b
print(resultado)

Cada parte fica em uma variável intermediária. Depois as partes se combinam. O print mostra só o valor final.

Divisão de inteiros com resultado 15.0

print(30 / 2)

A divisão de inteiros devolve float. O valor impresso é 15.0, não 15. Converter tipo para remover o .0 não foi o tema desta aula.

Avisos administrativos — 4 recados sobre prazos, regras e funcionamento do curso
  • 00:05:27 TP1 já liberado; leiam as questões e tentem fazer aos poucos. Na sexta-feira a aula será majoritariamente para a leitura do TP e explicação da entrega.
  • 01:22:33 Recomendação: façam o TP conforme o conteúdo avança; deixar tudo para o fim de semana prejudica a retenção.
  • 01:23:15 Cada questão do TP deve ficar em um bloco de código; detalhes de entrega serão explicados na sexta-feira.
  • 01:29:53 A aula continua na sexta-feira.
Perguntas de aluno — 9 perguntas respondidas na gravação

Francisco perguntou: tudo em Python é objeto; existe diferença entre objeto e dado? 00:08:32 Dado é uma subcategoria mais primitiva, mas qualquer informação no Python é representada como objeto; não dá para representar informação sem objeto.

Pedro perguntou: se eu quiser usar snake case em outras linguagens, não posso? 00:46:31 Pode, mas é uma questão cultural/convenção; cada linguagem tem seu padrão recomendado, e seguir a convenção facilita a homogeneidade do código.

Alexandre perguntou: como compatibilizar a vírgula usada no Brasil com o ponto usado em programação? 01:03:43 No armazenamento e cálculo sempre se usa ponto; a exibição depende da localização/idioma do usuário, então você formata o número na hora de mostrar.

Esses tipos de variável estão presentes na maioria das linguagens né? Em c tinha umas a mais eu acho, mas essas estavam lá 01:04:54 · chat 01:01:02 Sim; Python é um fio condutor e os conceitos são transferíveis. Java tem strings, ints, floats e booleanos; JavaScript tem strings, booleanos e um tipo number único.

Alguma restrição com comentários longos/recomendação sobre a extensão deles? Melhor manter conciso do que ir full Saramago? 01:06:46 · chat 01:01:37 Ainda não foi explicado; comentários serão abordados mais para frente.

Vinicius perguntou: o que é tipo primitivo e qual a diferença do não primitivo? 01:07:36 Tipos primitivos são como átomos: a menor unidade de informação; estruturas de dados são compostas a partir deles. Em Python, estritamente, tudo é objeto e não existem primitivos — é uma licença pedagógica.

Uma pessoa perguntou: Python é a linguagem mais difícil, então? 01:10:37 Não; Python é uma das linguagens mais fáceis para começar, porque esconde muita complexidade por trás.

tem motivo para ficar usando espaço? EX: (2 + 2) em vez de (2+2) 01:20:05 · chat 01:19:50 O espaço não é obrigatório; é usado por legibilidade, para o código não ficar claustrofóbico.

Marina e Vinicius perguntaram: por que apareceu 15.0 e dá para tirar o ponto zero? 01:20:35 Toda multiplicação ou divisão feita com inteiros tem resultado float, mesmo sendo inteiro; tirar o zero exige conversão de tipo, assunto de outra aula. Você pode formatar a exibição, mas o valor continua float.

Trechos que valem reouvir — 6 momentos que mais rendem uma segunda escuta
  • 00:13:53 — Ver na tela o erro de sintaxe gerado por nome de variável com espaço e a explicação de por que o Python não adivinha.
  • 00:19:29 — As três regras de nomes de variáveis com exemplos executados na tela.
  • 00:33:51 — Definições de snake case, camel case, pascal case e kebab case com os exemplos escritos na tela.
  • 00:52:10 — Exemplo do álbum: visualizar lado a lado string, int, bool e float.
  • 01:15:03 — Precedência de operadores, parênteses e divisão do cálculo em variáveis, com execução na tela.
  • 01:20:41 — Explicação do 15.0: por que multiplicação/divisão de inteiros vira float.

Glossário da aula

Conceitos

objeto

00:08:56

Objeto é a forma que o Python usa para representar qualquer informação. Dado é uma categoria mais primitiva, mas toda informação precisa ser um objeto para existir.

atribuição

00:12:01

Atribuição é a operação feita com o sinal de igual. Ela serve para guardar um valor dentro de uma variável.

variável

00:12:05

Variável é uma etiqueta que guarda um valor na memória. Ela é usada para organizar o código e evitar repetir o mesmo valor.

interpretador

00:16:02

Interpretador é o mecanismo do Python que lê e executa cada instrução. Ele é usado para rodar o código e mostra erro quando a instrução não é clara.

espaços em nomes de variável

00:16:21

Espaços em nomes de variável são caracteres proibidos na linguagem. Eles não podem ser usados porque causam erro de sintaxe, como em meu nome.

erro de sintaxe

00:17:00

Erro de sintaxe é a falha que acontece quando o código quebra as regras do Python. Ele é usado para avisar que algo está escrito de forma incorreta, como um nome com espaço.

símbolos em nomes de variável

00:19:56

Símbolos em nomes de variável são caracteres proibidos para criar nomes. A única exceção permitida é o underline, usado para separar palavras.

números em nomes de variável

00:21:39

Números em nomes de variável são caracteres permitidos com uma restrição. Eles podem aparecer no meio ou no fim, mas nunca no início do nome.

letras em nomes de variável

00:24:18

Letras em nomes de variável são caracteres permitidos em qualquer forma. Podem ser maiúsculas ou minúsculas e até com acento, segundo a sintaxe.

naming

00:28:17

Naming é o ato de escolher nomes para as variáveis do código. Ele segue boas práticas para padronizar os nomes e facilitar a leitura.

boa prática: não usar acentos

00:29:25

Boa prática de não usar acentos é a recomendação de evitar acentos nos nomes. Ela é usada para prevenir problemas de compatibilidade entre sistemas diferentes.

snake case

00:32:45

Snake case é o estilo de escrita com letras minúsculas e palavras separadas por underline. Ele é o padrão usado para nomear variáveis em Python.

camel case

00:36:13

Camel case é o estilo onde a primeira palavra é minúscula e as seguintes começam com maiúscula. Ele é comum em JavaScript e Java, mas não é usado em Python.

pascal case

00:39:00

Pascal case é o estilo igual ao camel case, mas com a primeira letra também maiúscula. Ele é usado em Python para nomear classes.

classe

00:40:04

Classe é um conceito que será visto mais adiante no curso. Ela é nomeada em Python com Pascal case, diferente do padrão de variáveis.

kebab case

00:40:32

Kebab case é o estilo com palavras minúsculas separadas por hífen. Ele é usado para nomes de arquivos e URLs, não para variáveis.

comentário (#)

00:41:22

Comentário é a linha iniciada com jogo da velha que o Python ignora. Ele é usado para deixar anotações e explicações dentro do código.

boa prática: nome indicativo

00:43:46

Nome indicativo é a boa prática de dar à variável um nome que mostra o que ela guarda. Ela é usada para deixar o código mais claro, preferindo nomes longos a abreviações.

string

00:53:23

String é o tipo usado para representar texto em Python. Ela é usada quando o valor precisa ficar entre aspas.

Int é o tipo usado para representar números inteiros sem parte decimal. Ele é usado para valores como idade ou ano de lançamento.

Bool é o tipo lógico para representar verdadeiro ou falso. Ele é usado para escolhas de sim ou não com os valores True e False sem aspas e com inicial maiúscula.

Float é o tipo usado para números com parte decimal e ponto flutuante. Ele é usado para valores como dinheiro e temperatura.

tipos primitivos

01:00:22

Tipos primitivos são os blocos básicos como string, int, bool e float usados para montar informações complexas. Em Python é uma licença pedagógica, pois na prática tudo é objeto.

separador decimal no Python

01:01:05

Separador decimal no Python é o ponto usado para separar a parte inteira da decimal. Ele é usado no lugar da vírgula, seguindo a convenção americana.

operadores aritméticos básicos

01:12:58

Operadores aritméticos básicos são os símbolos para soma, subtração, multiplicação e divisão. Eles são mais, menos, asterisco e barra, pois x e contrabarra não valem.

precedência de operadores

01:16:00

Precedência de operadores é a ordem que o Python segue para calcular expressões. Ela calcula multiplicação e divisão antes de soma e subtração, como na matemática.

parênteses

01:17:06

Parênteses são símbolos usados para mudar a ordem de cálculo. Eles são usados quando o que está dentro deles precisa ser resolvido primeiro.

variável intermediária

01:18:45

Variável intermediária é a variável usada para guardar partes de um cálculo complexo. Ela é usada para dividir a conta em etapas e depois combinar os resultados.

multiplicação/divisão de inteiros produz float

01:20:41

Multiplicação e divisão de inteiros é a operação com números inteiros que sempre retorna float. Ela é usada assim mesmo quando o resultado é inteiro, como 15.0.

conversão de tipos

01:21:08

Conversão de tipos é o processo de transformar um valor de um tipo para outro. Ela foi citada para remover o ponto zero de um float e será vista mais adiante.

Prática autocorrigida

Exercícios

0/24 concluídos
  1. Nome da banda na etiquetaLeia o nome de uma banda, guarde em uma variável com nome em snake_case e mostre o texto recebido.facilvariávelatribuiçãostring
  2. Ficha com os quatro tiposLeia o nome de uma banda, um ano inteiro e um lucro decimal, nessa ordem. Crie recomendo = True. Mostre quatro linhas: banda, ano, recomendo e lucro.facilstringintbool
  3. Soma de dois inteirosLeia dois inteiros, um por linha, e mostre a soma usando +.facilintoperadores aritméticos básicosatribuição
  4. Multiplicação antes da somaLeia três inteiros a, b e c, um por linha. Mostre a + b * c, calculando a multiplicação antes da soma.facilprecedência de operadoresoperadores aritméticos básicosint
  5. Parênteses mudam a contaLeia três inteiros a, b e c, um por linha. Mostre (a + b) * c. Você pode guardar a soma em uma variável intermediária.facilparêntesesvariável intermediáriaoperadores aritméticos básicos
  6. Divisão que vira floatLeia dois inteiros e mostre a divisão do primeiro pelo segundo com /. O divisor não será zero. Preserve o formato float do Python, como 15.0.facilfloatmultiplicação/divisão de inteiros produz floatoperadores aritméticos básicos
  7. Nome completo da bandaLeia as duas partes do nome de uma banda ou artista, uma por linha. Guarde-as em variáveis e mostre-as juntas, acrescentando um espaço entre elas.facilvariávelatribuiçãosnake case
  8. Selo de recomendaçãoLeia o nome de um álbum. Mostre esse nome e, na linha seguinte, o booleano True. Use True sem aspas no código.facilstringboolatribuição
  9. Diferença entre anosLeia o ano final e o ano inicial, um inteiro por linha. Mostre ano_final - ano_inicial; a diferença pode ser zero ou negativa.facilintatribuiçãooperadores aritméticos básicos
  10. Dobro do valor decimalLeia um número decimal, usando ponto como separador, e mostre seu dobro como float.facilfloatseparador decimal no Pythonoperadores aritméticos básicos
  11. Conta com divisão e precedênciaLeia quatro inteiros w, x, y e z, um por linha. Mostre w - x / y + z. O valor y não será zero.mediaprecedência de operadoresoperadores aritméticos básicosmultiplicação/divisão de inteiros produz float
  12. Lucro com variável intermediáriaLeia preço de venda e custo como decimais, depois a quantidade vendida como inteiro. Calcule (preço - custo) * quantidade e mostre o lucro total.mediavariável intermediáriafloatoperadores aritméticos básicos
  13. Triplo do primeiro mais o segundoLeia dois inteiros. Calcule o triplo do primeiro somado ao segundo e mostre o resultado.mediaintatribuiçãooperadores aritméticos básicos
  14. Saldo após crédito e débitoLeia três inteiros: saldo inicial, crédito e débito. Mostre saldo inicial + crédito - débito.mediaintatribuiçãooperadores aritméticos básicos
  15. Produto dividido pelo terceiroLeia três inteiros. Multiplique os dois primeiros e divida o produto pelo terceiro, que não será zero. Mostre o quociente.mediaintfloatoperadores aritméticos básicos
  16. Duas partes com barraLeia duas linhas e mostre o primeiro texto, uma barra / e o segundo texto, sem acrescentar espaços.mediainputconcatenaçãoString
  17. Somente a terceira de quatroLeia quatro linhas e mostre somente a terceira. As outras devem ser lidas e descartadas.mediainputprintExecução de cima para baixo
  18. Última, primeira e depois a segundaLeia quatro linhas. Descarte a terceira e mostre as posições 4, 1 e 2, uma por linha.mediainputprintExecução sequencial
  19. Extremos de três na mesma linhaLeia três linhas. Descarte a segunda e mostre a primeira e a terceira na mesma linha, acrescentando um espaço entre elas.mediainput()print()concatenação
  20. Primeiro, segundo e de novo o primeiroLeia duas linhas. Mostre as posições 1, 2 e novamente 1, uma por linha, sem fazer uma terceira leitura.mediavariávelinput()print()
  21. Ímpares de cinco de trás para frenteLeia cinco linhas e mostre as posições 5, 3 e 1, nessa ordem, uma por linha. Descarte as posições 2 e 4.dificilinput()print()execução de cima para baixo
  22. Inverter dentro de cada parLeia quatro linhas e mostre as posições 2, 1, 4 e 3, uma por linha.dificilinput()print()execução sequencial
  23. Cola as duas primeiras e ecoa a terceiraLeia três linhas. Mostre as duas primeiras concatenadas sem separador e, na linha seguinte, a terceira leitura.dificilconcatenaçãovariávelinput()
  24. Última de quatro com rótuloLeia quatro linhas e descarte as três primeiras. Mostre fim: seguido de um espaço e da quarta leitura, na mesma linha.dificilinput()concatenaçãoprint()