Olá, Thais. Como vai?
Que dedicação fantástica! Você resolveu uma bateria massiva de exercícios, passando por coleta de dados com input(), conversão de tipos de variáveis (casting), operadores aritméticos, estruturas condicionais e diversos métodos de manipulação de strings. É exatamente essa quantidade de repetição que cria a "memória muscular" necessária para programar com fluidez.
A estrutura geral do seu código está ótima, os conceitos foram aplicados muito bem. No entanto, ao analisar a escrita detalhada de cada questão, identifiquei quatro pequenos bugs de lógica e sintaxe nas seções da Calculadora e de Strings que farão o Python apresentar erros ou exibir resultados errados.
Vamos analisar esses pontos para que você possa fazer os ajustes necessários:
Os Pontos de Atenção no seu Código
1. A pegadinha da variável fantasma (v2) nas Divisões
Nas questões Q5, Q7 e Q8 da calculadora, você coletou os dados nas variáveis numerador e denominador. Mas repare em como você escreveu a estrutura condicional if:
numerador = int(input("Digite o valor do numerador: "))
denominador = int(input("Digite o valor do denominador: "))
if v2 == 0: # <--- Aqui está o bug!
print("Não é possível realizar a divisão entre os dois")
O que vai acontecer: Como a variável v2 foi usada em exercícios anteriores e não nesse, o Python pode se perder. Além disso, o seu objetivo real é garantir que o denominador não seja zero. Se o usuário digitar 0 no denominador, a sua conta quebrará com um erro de ZeroDivisionError porque o if checou a variável errada.
- O correto:
if denominador == 0: em todas as três questões.
2. Erro de Sintaxe nos Parênteses da Média
Na questão Q9 da calculadora, a sua string formatada acabou com um parêntese invertido ou deslocado na expressão matemática:
print(f"Média: {nota1+nota2+nota3)/3}") # <--- Parêntese antes do /3 fechou a f-string antes da hora
O que vai acontecer: O Python apresentará um erro de sintaxe (SyntaxError: f-string: closing parenthesis ')' does not match opening parenthesis '{'). Para que a f-string calcule a expressão antes de exibir, toda a conta matemática precisa estar estritamente dentro das chaves.
- O correto:
print(f"Média: {(nota1 + nota2 + nota3) / 3}")
3. Atenção aos Enunciados de Substituição
Nas questões Q8 e Q10 da seção de edição de textos, houve uma pequena inversão ou digitação trocada em relação ao que os desafios da Alura costumam pedir:
- Na Q8, você usou
replace("e", "f"). Geralmente o exercício propõe trocar todas as letras "e" por "3" para simular aquela escrita estilo leet speak (caracteres que imitam letras). - Na Q10, você usou
replace("s", "$"). Lembre-se apenas de que o método .replace() diferencia maiúsculas de minúsculas (case-sensitive). Se o usuário digitar "Sapo", o "S" maiúsculo não será trocado. Para garantir, você poderia fazer frase.lower().replace("s", "$") ou usar múltiplos replaces.
Versão Corrigida dos Trechos Críticos
Para facilitar, aqui estão os blocos que precisavam de correção ajustados e prontos para rodar no seu ambiente de desenvolvimento:
# --- CALCULADORA COM OPERADORES ---
# Q5 (Divisão Padrão)
numerador = int(input("Digite o valor do numerador: "))
denominador = int(input("Digite o valor do denominador: "))
if denominador == 0: # Ajustado de v2 para denominador
print("Não é possível realizar a divisão por zero.")
else:
print(numerador / denominador)
# Q7 (Divisão Inteira)
numerador = int(input("Digite o valor do numerador: "))
denominador = int(input("Digite o valor do denominador: "))
if denominador == 0: # Ajustado de v2 para denominador
print("Não é possível realizar a divisão por zero.")
else:
print(numerador // denominador)
# Q8 (Resto da Divisão)
numerador = int(input("Digite o valor do numerador: "))
denominador = int(input("Digite o valor do denominador: "))
if denominador == 0: # Ajustado de v2 para denominador
print("Não é possível realizar a divisão por zero.")
else:
print(numerador % denominador)
# Q9 (Média Aritmética)
nota1 = float(input("Digite a primeira nota: "))
nota2 = float(input("Digite a segunda nota: "))
nota3 = float(input("Digite a terceira nota: "))
print(f"Média: {(nota1 + nota2 + nota3) / 3}") # Ajustada a posição dos parênteses
Fazer tantos exercícios de uma vez e cometer esse tipo de deslize com nomes de variáveis e parênteses é a coisa mais normal do mundo no dia a dia da programação. O importante é saber ler o erro que o Python devolve no console e ajustar o alvo!
Você está progredindo super bem e já pegou toda a base de manipulação inicial de dados. Continue firme e poste suas evoluções!
Espero que possa ter lhe ajudado!