2
respostas

Desafio: hora da prática 2 - 1 parte

Coleta e amostragem de dados
Questão 1
nome = input('Digite seu nome: ')
print(f'Olá, {nome}')

Questão 2
nome = input('Digite seu nome: ')
idade = input('Digite sua idade: ')
print(f'Olá, {nome}, você tem {idade} anos')

Questão 3
nome = input('Digite seu nome: ')
idade = input('Digite sua idade: ')
altura = input('Digite sua altura: ')
print(f'Olá, {nome}, você tem {idade} anos e mede {altura} metros')

Calculadora com operadores
Questão 1
while True:
try:
valor_1 = float(input('Digite um valor numerico: '))
break
except ValueError:
print('Digite apenas numeros. ')

while True:
try:
valor_2 = float(input('Digite um novo valor: '))
break
except ValueError:
print('Digite apenas numeros. ')

print(valor_1 + valor_2)

Questão 2:
while True:
try:
valor_1 = float(input('Digite um valor numerico: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
valor_2 = float(input('Digite um novo valor: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
valor_3 = float(input('Digite um terceiro valor: '))
break
except ValueError:
print('Digite apenas numeros.')

print(valor_1 + valor_2 + valor_3)

Questão 3
while True:
try:
valor_1 = float(input('Digite um valor numerico: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
valor_2 = float(input('Digite um novo valor: '))
break
except ValueError:
print('Digite apenas numeros.')

print(f'O Resultado da subtração: {valor_1 - valor_2}')

Questão 4
while True:
try:
valor_1 = float(input('Digite um valor numerico: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
valor_2 = float(input('Digite um novo valor: '))
break
except ValueError:
print('Digite apenas numeros.')

print(f'O resultado da multiplicação: {valor_1 * valor_2}')

Questão 5
while True:
try:
valor_1 = float(input('Digite um valor que será o numerador: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
valor_2 = float(input('Digite um valor que sera o denominador, diferente de 0: '))

if valor_2 == 0:
    print('O denominador não pode ser 0!')
else:
    break

except ValueError:
print('Digite apenas numeros.')

print(f'Resultado da divisão: {valor_1 / valor_2:.2f}')

Questão 6
print("Vamos fazer um potenciação!")

while True:
try:
valor_1 = float(input('Digite um valor que será o operador: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
valor_2 = float(input('Digite um valor que será o potencia: '))
break
except ValueError:
print('Digite apenas numeros.')

print(f'Resultado da potenciação: {valor_1 ** valor_2}')

Questão 7
print('Entre com numeros inteiros')
while True:
try:
valor_1 = int(input('Digite um valor que será o numerador: '))
break
except ValueError:
print('Digite apenas numeros inteiros.')

while True:
try:
valor_2 = int(input('Digite um valor que sera o denominador, diferente de 0: '))

if valor_2 == 0:
    print('O denominador não pode ser 0!')
else:
    break

except ValueError:
print('Digite apenas numeros inteiros.')

print(f'Resultado da divisão inteira: {int(valor_1 / valor_2)}')

Questão 8
while True:
try:
valor_1 = int(input('Digite um valor que será o numerador: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
valor_2 = int(input('Digite um valor que sera o denominador, diferente de 0: '))

if valor_2 == 0:
    print('O denominador não pode ser 0!')
else:
    break

except ValueError:
print('Digite apenas numeros.')

print(f'Resultado do resto da divisão: {valor_1 % valor_2}')

Questão 9
print("Vamos calcular a média das notas!")

while True:
try:
nota_1 = float(input('Digite a primeira nota: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
nota_2 = float(input('Digite a segunda nota: '))
break
except ValueError:
print('Digite apenas numeros.')

while True:
try:
nota_3 = float(input('Digite a terceira nota: '))
break
except ValueError:
print('Digite apenas numeros.')

print(f'A média das notas é: {(nota_1 + nota_2 + nota_3) / 3:.2f}')

Questão 10
numero_1 = 5
numero_2 = 12
numero_3 = 20
numero_4 = 15

peso_1 = 1
peso_2 = 2
peso_3 = 3
peso_4 = 4

media_ponderada = (numero_1 * peso_1 + numero_2 * peso_2 + numero_3 * peso_3 + numero_4 * peso_4) / (peso_1 + peso_2 + peso_3 + peso_4)
print(f'A media ponderada é: {media_ponderada}')

2 respostas

Editando textos
Questão 1
frase = 'Vamos programar'
print(frase)

Questão 2
frase = input("Digite uma frase:")
print(frase)

Questão 3
frase = input("Digite uma frase:")
print(frase.upper())

Questão 4
frase = input("Digite uma frase:")
print(frase.lower())

Questão 5
frase = " Vamos fazer nada "
print(frase.strip())

Questão 6
frase = input("Digite uma frase: ")
print(frase.strip())

Questão 7
frase = input("Digite uma frase: ")
print(frase.strip().lower())

Questão 8
frase = input("Digite uma frase: ")
print(frase.replace('e', 'f'))

Questão 9
frase = input("Digite uma frase: ")
print(frase.replace('a', '@'))

Questão 10
frase = input("Digite uma frase: ")
print(frase.replace('s', '$'))

Olá, Julio Cesar! Como vai?

Parabéns por concluir essa maratona de exercícios! Você demonstrou uma preocupação técnica excelente ao ir além do básico solicitado: o uso do try...except dentro de laços while True é uma das melhores práticas para garantir que um programa de Data Science não trave por causa de entradas de dados inválidas.

Gostaria de destacar alguns pontos muito positivos na sua resolução:

Pontos Fortes do seu Código

  • Tratamento de Erros: Sua implementação para validar números é robusta. Em projetos reais, o usuário frequentemente digita vírgulas em vez de pontos ou letras por engano; seu código lida com isso perfeitamente.
  • Prevenção de Divisão por Zero: Nas questões 5, 7 e 8, você adicionou uma verificação para o denominador. Isso evita o erro ZeroDivisionError, que é um dos mais comuns em cálculos automatizados.
  • Manipulação de Strings: Você utilizou o encadeamento de métodos (ex: frase.strip().lower()), o que é muito eficiente em Python. Na limpeza de dados (Data Cleaning), remover espaços e padronizar para minúsculas é o primeiro passo de quase todo projeto.
  • Precisão Numérica: O uso de :.2f nas F-strings mostra que você já domina a formatação de saída para facilitar a leitura dos resultados.

Dicas para Refinar sua Prática

Como você já está escrevendo códigos bem estruturados, aqui estão três toques para elevar ainda mais o nível:

  1. Simplificando a Entrada (DRY - Don't Repeat Yourself): Note que você repetiu o bloco while True muitas vezes para cada valor. Em Python, quando repetimos muito um código, criamos uma função. Veja como ficaria mais limpo:
def ler_float(mensagem):
    while True:
        try:
            return float(input(mensagem))
        except ValueError:
            print('Digite apenas números.')

valor_1 = ler_float('Digite o primeiro valor: ')
valor_2 = ler_float('Digite o segundo valor: ')
  1. Divisão Inteira (Questão 7): Você usou int(valor_1 / valor_2). O Python tem um operador específico para isso que é o //. Ele já retorna o resultado inteiro sem precisar da conversão manual:
print(f'Resultado da divisão inteira: {valor_1 // valor_2}')
  1. Método replace (Questões 8-10): Lembre-se que o .replace() diferencia maiúsculas de minúsculas. Se você quiser garantir que todos os "A" virem "@", pode ser útil usar .lower() antes ou encadear dois replaces: .replace('a', '@').replace('A', '@').

Seu progresso é muito nítido, Julio! Essa base sólida em manipulação de tipos e tratamento de exceções vai te dar muita segurança quando você começar a trabalhar com grandes volumes de dados usando bibliotecas como Pandas.

Espero que possa ter lhe ajudado! Qual dessas partes você achou mais trabalhosa: a lógica dos operadores matemáticos ou a manipulação de textos?