1
resposta

Desafio: hora da prática

Coleta e amostragem de dados

Solicita o nome e imprime saudação

nome = input("Digite seu nome: ")
print("Olá,", nome, "!")

Solicita nome e idade

nome = input("Digite seu nome: ")
idade = input("Digite sua idade: ")
print("Olá,", nome, ", você tem", idade, "anos.")

Solicita nome, idade e altura

nome = input("Digite seu nome: ")
idade = input("Digite sua idade: ")
altura = input("Digite sua altura em metros: ")
print("Olá,", nome, ", você tem", idade, "anos e mede", altura, "metros!")

Calculadora com operadores

Soma de dois valores
a = float(input("Digite o primeiro valor: "))
b = float(input("Digite o segundo valor: "))
print("Soma:", a + b)

Soma de três valores
a = float(input("Digite o primeiro valor: "))
b = float(input("Digite o segundo valor: "))
c = float(input("Digite o terceiro valor: "))
print("Soma:", a + b + c)

Subtração
a = float(input("Digite o primeiro valor: "))
b = float(input("Digite o segundo valor: "))
print("Subtração:", a - b)

Multiplicação
a = float(input("Digite o primeiro valor: "))
b = float(input("Digite o segundo valor: "))
print("Multiplicação:", a * b)

Divisão (com verificação do denominador)
numerador = float(input("Digite o numerador: "))
denominador = float(input("Digite o denominador: "))
if denominador != 0:
print("Divisão:", numerador / denominador)
else:
print("Erro: o denominador não pode ser 0!")

Exponenciação
base = float(input("Digite a base: "))
expoente = float(input("Digite o expoente: "))
print("Potência:", base ** expoente)

Divisão inteira
numerador = int(input("Digite o numerador: "))
denominador = int(input("Digite o denominador: "))
if denominador != 0:
print("Divisão inteira:", numerador // denominador)
else:
print("Erro: o denominador não pode ser 0!")

Resto da divisão
numerador = int(input("Digite o numerador: "))
denominador = int(input("Digite o denominador: "))
if denominador != 0:
print("Resto da divisão:", numerador % denominador)
else:
print("Erro: o denominador não pode ser 0!")

Média de 3 notas
n1 = float(input("Digite a primeira nota: "))
n2 = float(input("Digite a segunda nota: "))
n3 = float(input("Digite a terceira nota: "))
print("Média:", (n1 + n2 + n3) / 3)

Média ponderada
numeros = [5, 12, 20, 15]
pesos = [1, 2, 3, 4]
media_ponderada = sum([n * p for n, p in zip(numeros, pesos)]) / sum(pesos)
print("Média ponderada:", media_ponderada)

Editando textos

Variável frase
frase = "Python é divertido!"
print(frase)

Solicita frase
frase = input("Digite uma frase: ")
print(frase)

Frase em maiúsculas
frase = input("Digite uma frase: ")
print(frase.upper())

Frase em minúsculas
frase = input("Digite uma frase: ")
print(frase.lower())

Frase sem espaços no início e fim
frase = " Aprendendo Python "
print(frase.strip())

Solicita frase e remove espaços
frase = input("Digite uma frase: ")
print(frase.strip())

Frase sem espaços e em minúsculas
frase = input("Digite uma frase: ")
print(frase.strip().lower())

Trocar 'e' por 'f'
frase = input("Digite uma frase: ")
print(frase.replace("e", "f"))

Trocar 'a' por '@'
frase = input("Digite uma frase: ")
print(frase.replace("a", "@"))

Trocar 's' por '$'
frase = input("Digite uma frase: ")
print(frase.replace("s", "$"))

1 resposta

Olá, Penha. Como vai?

Que entrega fantástica e completa! Você resolveu uma bateria enorme de exercícios cobrindo os principais pilares de quem está dando os primeiros passos em Ciência de Dados com Python: coleta de dados via console, operações matemáticas estruturadas e manipulação de strings.

Gostaria de destacar alguns pontos brilhantes no seu código que mostram uma ótima atenção aos detalhes e boas práticas de programação:

  • Tratamento de divisão por zero: Nos exercícios de divisão, divisão inteira (//) e resto da divisão (%), você usou perfeitamente a condicional if denominador != 0:. Esse cuidado evita que o programa sofra uma quebra fatal (runtime error) por conta de um ZeroDivisionError, o que é uma excelente prática defensiva de código.
  • Uso de List Comprehension e zip(): A sua resolução para a média ponderada ficou extremamente avançada e elegante! Unir as listas com zip(numeros, pesos) e calcular a soma dos produtos usando uma compreensão de lista em apenas uma linha (sum([n * p for n, p in zip(...)])) é um padrão muito utilizado por cientistas de dados pela sua alta performance.
  • Encadeamento de métodos (Method Chaining): No exercício onde pediu a frase sem espaços e em minúsculas, você aplicou o encadeamento de forma perfeita com frase.strip().lower(). O Python processa isso da esquerda para a direita de forma muito limpa.

Uma sugestão de boa prática: f-strings para exibição de dados

Nos primeiros exercícios de saudação, você utilizou a separação por vírgulas dentro do print(), como em:
print("Olá,", nome, ", você tem", idade, "anos.")

Essa abordagem funciona super bem porque o print insere automaticamente um espaço entre os argumentos. Contudo, conforme seus scripts de dados forem crescendo, essa concatenação pode ficar confusa visualmente.

A melhor prática de mercado hoje é a utilização de f-strings (strings formatadas), que você já utilizou com maestria nos comentários dos seus blocos. Veja como os seus primeiros códigos de saída podem ficar ainda mais legíveis e organizados:

nome = input("Digite seu nome: ")
idade = input("Digite sua idade: ")
altura = input("Digite sua altura em metros: ")

# Utilizando f-strings, o código fica fluido e fácil de ler
print(f"Olá, {nome}, você tem {idade} anos e mede {altura} metros!")

Parabéns pela dedicação em praticar cada um dos exercícios do desafio! Dominar esses métodos de manipulação de texto (como strip(), replace() e lower()) vai te poupar muito tempo lá na frente, quando você começar a trabalhar com a etapa de limpeza e tratamento de grandes bases de dados (Data Cleaning).

Espero que possa ter lhe ajudado!