1
resposta

Desafio 04 - Momento dos Projetos

Seguem minhas resoluções para os exercícios propostos:

Questão 6: Incluí uma estrutura de repetição while caso seja digitado um número menor que 0 ou maior que 10. Havia tentado fazer com "IF", inclusive cheguei a ver 2 outros colegas aqui no fórum que seguiram assim, o problema é que o programa para e seria necessário rodar de novo.

num = int(input('Digite um número inteiro de 1 a 10: '))

while (num < 0) or (num >10):
  num = int(input('Valor inválido. Digite um número inteiro de 1 a 10: '))
  
print(f'Tabuada do {num}:')

for valor in range(1,11):
  print(f'{num} x {valor} = {(num * valor)}')

Questão 7: Conferi com a opinião do instrutor e em vez de colocar uma variável booleana para depois verificar se é verdadeira ou falsa, já incluí uma variável com o valor a ser utilizado no texto final, que é ajustada se tiver algum resto = 0 no decorrer da repetição do "FOR".

num = int(input('Insira um número inteiro: '))
status = 'é primo'

if num <= 1:
  status = 'não é primo'
else:
  for divisor in range(2, num):
    if num % divisor == 0:
      status = 'não é primo'

print(f'O número {num} {status}.')

Questão 8:

idade = int(input('Insira a idade do pensionista: '))

cont_0_25 = 0
cont_26_50 = 0
cont_51_75 = 0
cont_76_100 = 0

while idade >= 0:
  if (idade >=0) and (idade<=25):
    cont_0_25 +=1
  elif (idade >=26) and (idade<=50):
    cont_26_50 +=1
  elif (idade >=51) and (idade<=75):
    cont_51_75 +=1
  elif (idade >=76) and (idade<=100):
    cont_76_100 +=1
  idade = int(input('Insira a idade do pensionista: '))

print(f'Distribuição de idades dos pensionistas:\n[0-25]: {cont_0_25}\n[26-50]: {cont_26_50}\n[51-75]: {cont_51_75}\n[76-100]: {cont_76_100}\n')

Questão 9:

candidato1 = 0
candidato2 = 0
candidato3 = 0
candidato4 = 0
nulo = 0
branco = 0

funcionario = 1

while funcionario <= 20:
  voto = int(input('Insira um número de 1 a 6 correspondente ao voto: '))
  if voto == 1:
    candidato1 +=1
  elif voto == 2:
    candidato2 +=1
  elif voto == 3:
    candidato3 +=1
  elif voto == 4:
    candidato4 +=1
  elif voto == 5:
    nulo +=1
  elif voto == 6:
    branco +=1
  funcionario += 1

total = candidato1 + candidato2 + candidato3 + candidato4 + nulo + branco 

print(f'Apuração dos votos:\nCandidato 1: {candidato1}\nCandidato 2: {candidato2}\nCandidato 3: {candidato3}\nCandidato 4: {candidato4}\nVotos Nulos: {nulo}, que representam {(nulo / total) * 100}% dos votos\nVotos em Branco: {branco}, que representam {(branco / total) * 100}% dos votos')

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
1 resposta

Oi! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Gostei muito da forma como você utilizou o while para validar os dados de entrada e também da lógica aplicada para identificar números primos. A solução ficou clara e demonstra boa compreensão das estruturas de repetição.

Uma dica interessante para o futuro é explorar o uso do continue dentro de laços. Ele permite pular uma iteração quando uma condição é atendida, sem encerrar o laço. Veja este exemplo:


for num in range(1, 11):
    if num == 5:
        continue
    print(num)

Esse código imprime os números de 1 a 10, exceto o 5, porque o comando continue faz o laço ir direto para a próxima iteração.

Qualquer dúvida que surgir, compartilhe no fórum. Abraços e bons estudos!

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!