2
respostas

Desafio: hora da prática - parte 4

Questão 1
while True:
try:
numero_1 = int(input('Digite um numero inteiro: '))
break
except ValueError:
print('Digite apenas numeros inteiros')

while True:
try:
numero_2 = int(input('Digite um segundo numero inteiro: '))
break
except ValueError:
print('Digite apenas numeros inteiros')

if numero_1 < numero_2:
for i in range(numero_1 + 1, numero_2):
print(i)

Questão 2
inicio_1 = 4
inicio_2 = 10
taxa_1 = 0.03
taxa_2 = 0.015
dias = 0

while inicio_1 <= inicio_2:
inicio_1 += inicio_1 * taxa_1
inicio_2 += inicio_2 * taxa_2
dias += 1

print(f'Levou {dias} dias para a colonia de bactéria "A" ultrapassar ou igualar a colonia de bactéria "B"')

Questão 3
dados = 15
for i in range(dados):
while True:
try:
nota = float(input(f'Digite a {i + 1}º nota de 0 a 5: '))
if nota < 0 or nota > 5:
print('Digite uma nota valida')
else:
break
except ValueError:
print('Digite apenas numeros')

Questão 4
count = 1
soma = 0;
while True:
temperatura = float(input(f'Digite a {count}º temperatura: '))
if temperatura == -273:
break

soma += temperatura
media = soma / count
print(f'A média das temperaturas é: {media}')
count += 1

print(f'A média final das temperaturas é: {media}')

QUestão 5
while True:
try:
numero = int(input('Digite um numero inteiro: '))
break
except ValueError:
print('Digite apenas numeros inteiros')

fatorial = 1
for i in range(1, numero + 1):
fatorial *= i
print(f'O fatorial é : {fatorial}')

Questão 6
while True:
try:
numero = int(input('Digite um numero inteiro: '))
break
except ValueError:
print('Digite apenas numeros inteiros')

print(f'Tabuada do {numero}:')
for i in range(1,11):
print(f'{numero} x {i} = {numero * i}')

Questão 7
while True:
try:
numero = int(input('Digite um numero inteiro: '))
break
except ValueError:
print('Digite apenas numeros inteiros')

if numero < 2:
print(f'O numero {numero} não é primo')
else:
for i in range(2, numero):
if numero % i == 0:
print(f'O numero {numero} não é primo')
break
else:
print(f'O numero {numero} é primo')

Questão 8
while True:
try:
idade = int(input('Digite a idade do cliente: '))
if idade < 0:
print('Encerrando o programa')
break
elif idade <= 25:
print('[0-25]')
elif idade <= 50:
print('[26-50]')
elif idade <= 75:
print('[51-75]')
elif idade <= 100:
print('[76-100]')
else:
print('Idade maior que 100')
except ValueError:
print('Digite apenas numeros')

Questão 9
funcionario = 20
candidato_1 = 0
candidato_2 = 0
candidato_3 = 0
candidato_4 = 0
voto_nulo = 0
voto_branco = 0

for i in range(funcionario):
while True:
try:
voto = int(input(f'Digite o voto do {i + 1}º funcionario (1, 2, 3, 4, 5 ou 6): '))
if voto == 1:
candidato_1 += 1
break
elif voto == 2:
candidato_2 += 1
break
elif voto == 3:
candidato_3 += 1
break
elif voto == 4:
candidato_4 += 1
break
elif voto == 5:
voto_nulo += 1
break
elif voto == 6:
voto_branco += 1
break
else:
print('Voto inválido! Digite um número entre 1 e 6.')

except ValueError:
  print('Digite apenas numeros')

print(f'Candidato 1: {candidato_1}')
print(f'Candidato 2: {candidato_2}')
print(f'Candidato 3: {candidato_3}')
print(f'Candidato 4: {candidato_4}')
print(f'Votos nulos: {voto_nulo}')
print(f'Votos em branco: {voto_branco}')

print(f'Porcentagem de votos nulos: {voto_nulo / funcionario * 100:.2f}%')
print(f'Porcentagem de votos em branco: {voto_branco / funcionario * 100:.2f}%')

2 respostas

Oii Julio Cesar, tudo bem?

Que bacana ver você resolvendo as 9 questões de uma vez! No geral, seu trabalho ficou muito bom.

Você aplicou bem as validações, os laços de repetição, o tratamento de erros e os cálculos pedidos nos enunciados.

Na Questão 1, a lógica com range(numero_1 + 1, numero_2) está correta para excluir os extremos. Só vale pensar no caso em que o usuário digita os números na ordem inversa, com o maior primeiro.

O principal ponto de atenção está na Questão 4. A variável media é calculada dentro do loop, mas pode gerar erro se o primeiro valor digitado for -273, pois ela ainda não teria sido criada antes do print final. Além disso, vale revisar a ordem das operações no cálculo da média parcial, especialmente em relação à atualização do contador.

Na Questão 8, a solução está boa. Apenas confirme se o enunciado permite exibir a mensagem "Encerrando o programa" ao receber um número negativo.

No geral, você mandou muito bem. O maior ajuste está mesmo na Questão 4: pense em como garantir que media exista antes do print final.

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

Bons estudos!

Sucesso

Imagem da comunidade

Na questão 4 e so iniciar a variavel antes do loop
Questão 4
count = 1
soma = 0
media = 0
while True:
temperatura = float(input(f'Digite a {count}º temperatura: '))
if temperatura == -273:
break

soma += temperatura
media = soma / count
print(f'A média das temperaturas é: {media}')
count += 1

print(f'A média final das temperaturas é: {media}')