1
resposta

Desafio: hora da prática

#Coleta de amostragem de dados
#Q1
nome = input("Digite seu nome: ")
print(f"Olá, {nome}!")

#Q2
nome = input("Digite seu nome: ")
idade = int(input("Digite sua idade: "))
print(f"Olá, {nome}, você tem {idade} anos")

#Q3
nome = input("Digite seu nome: ")
idade = int(input("Digite sua idade: "))
altura = float(input("Digite sua altura: "))

print(f"Olá, {nome}, você tem {idade} anos e mede {altura} metros!")

#Calculadora com operadores
#Q1
v1 = int(input("Digite o primeiro valor: "))
v2 = int(input("Digite o segundo valor: "))
print (v1+v2)

#Q2
v1 = int(input("Digite o primeiro valor: "))
v2 = int(input("Digite o segundo valor: "))
v3 = int(input("Digite o terceiro valor: "))
print (v1+v2+v3)

#Q3
v1 = int(input("Digite o primeiro valor: "))
v2 = int(input("Digite o segundo valor: "))
print (v1-v2)

#Q4
v1 = int(input("Digite o primeiro valor: "))
v2 = int(input("Digite o segundo valor: "))
print (v1*v2)

#Q5
numerador = int(input("Digite o valor do numerador: "))
denominador = int(input("Digite o valor do denominador: "))

if v2 == 0:
    print("Não é possível realizar a divisão entre os dois")
else:
    print(numerador/denominador)

#Q6
operador = int(input("Digite o valor do operador: "))
potencia = int(input("Digite o valor da potência: "))
print(operador**potencia)

#Q7
numerador = int(input("Digite o valor do numerador: "))
denominador = int(input("Digite o valor do denominador: "))

if v2 == 0:
    print("Não é possível realizar a divisão entre os dois")
else:
    print(numerador//denominador)
    
#Q8
numerador = int(input("Digite o valor do numerador: "))
denominador = int(input("Digite o valor do denominador: "))

if v2 == 0:
    print("Não é possível realizar a divisão entre os dois")
else:
    print(numerador%denominador)
    
#Q9
nota1 = float(input("Digite o primeira nota: "))
nota2 = float(input("Digite o segunda nota: "))
nota3 = float(input("Digite o terceira nota: "))
print (f"Média: {nota1+nota2+nota3)/3}")

#Q10
mediaPonderada = (5*1 + 12*2 + 20*3 + 15*4) / (1+2+3+4)
print(f"Média ponderada {mediaPonderada}")

#Editando textos
# Q1
frase = "Olá, mundinho!"
print(frase)

#Q2
frase = input("Digite uma frase: ")
print(frase)

#Q3
frase = input("Digite uma frase: ")
print(frase.upper())

#Q4
frase = input("Digite uma frase: ")
print(frase.lower())

#Q5
frase = "   Olá, mundo!   "
print(frase.strip())

#Q6
frase = input("Digite uma frase: ")
print(frase.strip())

#Q7
frase = input("Digite uma frase: ")
print(frase.strip().lower())

#Q8
frase = input("Digite uma frase: ")
print(frase.replace("e", "f"))

#Q9
frase = input("Digite uma frase: ")
print(frase.replace("a", "@"))

#Q10
frase = input("Digite uma frase: ")
print(frase.replace("s", "$"))
1 resposta

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!