Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Desafio: hora da prática | Python para Dados: primeiros passos

Aquecendo na programação

  1. Imprimir todos os números inteiros entre dois números
num1 = int(input("Digite o primeiro número: "))
num2 = int(input("Digite o segundo número: "))

inicio = min(num1, num2)
fim = max(num1, num2)

for i in range(inicio + 1, fim):
    print(i)
  1. Crescimento das colônias de bactérias
a = 4
b = 10
dias = 0

while a < b:
    a *= 1.03
    b *= 1.015
    dias += 1

print(f"Serão necessários {dias} dias.")
  1. Validação de 15 notas entre 0 e 5
for i in range(15):
    nota = float(input(f"Digite a nota {i + 1}: "))

    while nota < 0 or nota > 5:
        print("Nota inválida!")
        nota = float(input("Digite uma nota entre 0 e 5: "))

print("Todas as notas foram registradas.")
  1. Média de temperaturas
soma = 0
quantidade = 0

while True:
    temp = float(input("Digite a temperatura em °C (-273 para encerrar): "))

    if temp == -273:
        break

    soma += temp
    quantidade += 1

if quantidade > 0:
    media = soma / quantidade
    print(f"Média das temperaturas: {media:.2f}°C")
else:
    print("Nenhuma temperatura foi informada.")
  1. Cálculo do fatorial
numero = int(input("Digite um número inteiro: "))

fatorial = 1

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

print(f"{numero}! = {fatorial}")

Momento dos Projetos

  1. Tabuada de 1 a 10
numero = int(input("Digite um número para ver sua tabuada: "))

print(f"\nTabuada do {numero}:")

for i in range(1, 11):
    print(f"{numero} x {i} = {numero * i}")
  1. Verificar se um número é primo
numero = int(input("Digite um número inteiro: "))

if numero < 2:
    print("Não é primo.")
else:
    primo = True

    for i in range(2, numero):
        if numero % i == 0:
            primo = False
            break

    if primo:
        print("É primo.")
    else:
        print("Não é primo.")
  1. Distribuição de idades
faixa1 = 0  # 0 a 25
faixa2 = 0  # 26 a 50
faixa3 = 0  # 51 a 75
faixa4 = 0  # 76 a 100

while True:
    idade = int(input("Digite a idade (negativa para encerrar): "))

    if idade < 0:
        break

    if 0 <= idade <= 25:
        faixa1 += 1
    elif 26 <= idade <= 50:
        faixa2 += 1
    elif 51 <= idade <= 75:
        faixa3 += 1
    elif 76 <= idade <= 100:
        faixa4 += 1

print("\nDistribuição das idades:")
print(f"0 a 25 anos: {faixa1}")
print(f"26 a 50 anos: {faixa2}")
print(f"51 a 75 anos: {faixa3}")
print(f"76 a 100 anos: {faixa4}")
  1. Eleição com 20 colaboradores
candidato1 = 0
candidato2 = 0
candidato3 = 0
candidato4 = 0
nulos = 0
brancos = 0

for i in range(20):
    voto = int(input(
        "Vote (1, 2, 3, 4 = candidatos | 5 = nulo | 6 = branco): "
    ))

    while voto < 1 or voto > 6:
        voto = int(input("Voto inválido. Digite novamente: "))

    if voto == 1:
        candidato1 += 1
    elif voto == 2:
        candidato2 += 1
    elif voto == 3:
        candidato3 += 1
    elif voto == 4:
        candidato4 += 1
    elif voto == 5:
        nulos += 1
    else:
        brancos += 1

total = 20

print("\nResultado da eleição:")
print(f"Candidato 1: {candidato1} votos")
print(f"Candidato 2: {candidato2} votos")
print(f"Candidato 3: {candidato3} votos")
print(f"Candidato 4: {candidato4} votos")
print(f"Votos nulos: {nulos}")
print(f"Votos em branco: {brancos}")

perc_nulos = (nulos / total) * 100
perc_brancos = (brancos / total) * 100

print(f"\nPercentual de votos nulos: {perc_nulos:.2f}%")
print(f"Percentual de votos em branco: {perc_brancos:.2f}%")

maior = max(candidato1, candidato2, candidato3, candidato4)

if maior == candidato1:
    print("Vencedor: Candidato 1")
elif maior == candidato2:
    print("Vencedor: Candidato 2")
elif maior == candidato3:
    print("Vencedor: Candidato 3")
else:
    print("Vencedor: Candidato 4")
1 resposta
solução!

Oii Estudante, tudo bem?

Obrigada por compartilhar todas as soluções aqui no fórum, com certeza vai ajudar outros alunos que estejam passando pelos mesmos desafios.

Os códigos estão bem organizados e funcionais. Algumas escolhas merecem destaque: o uso de min e max para definir automaticamente o início e fim no primeiro exercício foi elegante, e a lógica de validação de votos com o while interno no exercício da eleição ficou bem estruturada.

Uma observação sobre o verificador de número primo: o for i in range(2, numero) funciona corretamente, mas existe uma otimização clássica que vale conhecer. Você pode ir só até a raiz quadrada do número (range(2, int(numero**0.5) + 1)), porque se um número tem um divisor maior que sua raiz, ele necessariamente tem um divisor menor que ela também. Para números pequenos não faz diferença, mas é uma boa prática de performance para pensar à frente.

Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.

Bons estudos!

Sucesso

Imagem da comunidade