1
resposta

Desafio: hora da prática

# Questão 1: Escreva um programa que peça dois números inteiros e imprima todos os números inteiros entre eles.
# Solicita dois números inteiros
num1 = int(input("Digite o primeiro número: "))
num2 = int(input("Digite o segundo número: "))

# Define o menor e o maior número
inicio = min(num1, num2)
fim = max(num1, num2)

# Verifica se existem números entre eles
if fim - inicio <= 1:
    print("Não existem números inteiros entre eles.")
else:
    print("Números entre eles:")
    
    for i in range(inicio + 1, fim):
        print(i)
# Questão 2: Escreva um programa para calcular quantos dias levará para a colônia de uma bactéria A ultrapassar ou igualar a colônia de uma bactéria B, com base nas taxas de crescimento de 3% e 1,5% respectivamente. Considere que a colônia A inicia com 4 elementos e a colônia B com 10 elementos.
# Valores iniciais das colônias
bacteria_a = 4
bacteria_b = 10

# Contador de dias
dias = 0

# Calcula quantos dias serão necessários
while bacteria_a < bacteria_b:
    bacteria_a = bacteria_a * 1.03   # Crescimento de 3%
    bacteria_b = bacteria_b * 1.015  # Crescimento de 1,5%
    dias += 1

# Exibe o resultado
print(f"A colônia A ultrapassará ou igualará a colônia B em {dias} dias.")

print(f"Colônia A: {bacteria_a:.2f}")
print(f"Colônia B: {bacteria_b:.2f}")
# Questão 3: Para tratar uma quantidade de 15 dados de avaliações de pessoas usuárias de um serviço da empresa, precisamos verificar se as notas são válidas. Então, escreva um programa que vai receber a nota de 0 a 5 de todos os dados e verificar se é um valor válido. Caso seja inserido uma nota acima de 5 ou abaixo de 0, repita até que a pessoa usuária insira um valor válido.
# Laço para receber 15 notas válidas
for i in range(1, 16):
    
    nota = float(input(f"Digite a {i}ª nota (0 a 5): "))
    
    # Verifica se a nota é válida
    while nota < 0 or nota > 5:
        print("Nota inválida! Digite um valor entre 0 e 5.")
        nota = float(input(f"Digite a {i}ª nota novamente: "))
    
    print(f"Nota {nota} registrada com sucesso.\n")
# Questão 4: Desenvolva um programa que leia um conjunto indeterminado de temperaturas em Celsius e faça uma análise. Portanto, escreva um programa que leia temperaturas e informe a média delas. A leitura deve ser encerrada ao ser enviado o valor -273°C.
# Variáveis para soma e quantidade de temperaturas
soma = 0
quantidade = 0

print("Digite as temperaturas em Celsius.")
print("Para encerrar, digite -273.")

# Loop de leitura
while True:
    temperatura = float(input("Temperatura: "))
    
    # Encerra a leitura
    if temperatura == -273:
        break
    
    # Soma as temperaturas válidas
    soma += temperatura
    quantidade += 1

# Verifica se houve temperaturas inseridas
if quantidade > 0:
    media = soma / quantidade
    print(f"\nMédia das temperaturas: {media:.2f}°C")
else:
    print("\nNenhuma temperatura válida foi informada.")
# Questão 5: Escreva um programa que calcule o fatorial de um número inteiro fornecido pela pessoa usuária. O fatorial de um número inteiro é a multiplicação desse número por todos os seus antecessores até o número 1. Por exemplo, o fatorial de 5 é 5 x 4 x 3 x 2 x 1 = 120.
# Solicita um número inteiro
numero = int(input("Digite um número inteiro: "))

# Verifica se o número é negativo
if numero < 0:
    print("Não existe fatorial de número negativo.")
else:
    fatorial = 1

    # Calcula o fatorial
    for i in range(1, numero + 1):
        fatorial *= i

    # Exibe o resultado
    print(f"O fatorial de {numero} é {fatorial}.")
1 resposta

Olá! Tudo bem?

Parabéns pela resolução dos desafios! Você demonstrou um ótimo domínio sobre as estruturas de repetição (for e while) e sobre a lógica de controle de fluxo em Python.

Aqui estão alguns destaques técnicos sobre a sua implementação:

Análise das Questões:

  • Questão 1 (Intervalo entre números): O uso das funções min() e max() foi excelente. Isso torna seu código robusto, pois ele funciona independentemente da ordem em que o usuário digita os números.
  • Questão 2 (Crescimento de populações): Você aplicou corretamente a estrutura while para um cenário onde não sabemos de antemão quantas repetições serão necessárias. O uso de multiplicadores como 1.03 e 1.015 é a forma mais eficiente de calcular acréscimos percentuais.
  • Questão 3 (Validação de dados): Este é um exemplo clássico de validação de entrada. O while aninhado dentro do for garante que o programa só avance para o próximo dado após receber um valor válido, o que é fundamental em Data Science para garantir a qualidade da análise.
  • Questão 4 (Média com sentinela): O uso do while True com o break é a maneira mais "pythônica" de lidar com conjuntos indeterminados de dados. Além disso, você tratou corretamente a divisão por zero ao verificar se a quantidade > 0 antes de calcular a média.
  • Questão 5 (Fatorial): A lógica do acumulador fatorial *= i dentro do laço for está perfeita.

Dica de Ouro para Data Science:

Na Questão 4, você utilizou o valor -273 (Zero Absoluto) como condição de parada. Em projetos reais de análise de dados, muitas vezes usamos o try-except para lidar com entradas que não são números ou valores nulos (NaN), garantindo que o programa não pare de funcionar inesperadamente.

Continue com esse foco! Praticar com problemas que simulam situações reais, como o crescimento de bactérias ou o tratamento de notas de usuários, é o que constrói a base necessária para avançar em Python para Dados.

Espero que possa ter lhe ajudado!