Duvida exercicio (2) [RESOLVIDO]

1. Duvida exercicio (2) [RESOLVIDO]

thalis
himen3

(usa Arch Linux)

Enviado em 02/06/2018 - 16:47h

Em uma competição de salto em distância cada atleta tem direito a cinco saltos. No final da série de saltos de cada atleta, o melhor e o pior resultados são eliminados. O seu resultado fica sendo a média dos três valores restantes. Você deve fazer um programa que receba o nome e as cinco distâncias alcançadas pelo atleta em seus saltos e depois informe a média dos saltos conforme a descrição acima informada (retirar o melhor e o pior salto e depois calcular a média). Faça uso de uma lista para armazenar os saltos. Os saltos são informados na ordem da execução, portanto não são ordenados. O programa deve ser encerrado quando não for informado o nome do atleta. A saída do programa deve ser conforme o exemplo abaixo:
Atleta: Rodrigo Curvêllo

Primeiro Salto: 6.5 m
Segundo Salto: 6.1 m
Terceiro Salto: 6.2 m
Quarto Salto: 5.4 m
Quinto Salto: 5.3 m

Melhor salto: 6.5 m
Pior salto: 5.3 m
Média dos demais saltos: 5.9 m

Resultado final:
Rodrigo Curvêllo: 5.9 m

colocado = 'Primeiro','Segundo','Terceiro','Quarto','Quinto'
melhor_salto = pior_salto = contagem = media_saltos = total_saltos = media= 0
atleta = ' '
while atleta != '':
atleta = input("Atleta: ")
if atleta == '':
break
for c in range(0, 5):
salto = float(input(f"{colocado[c]} salto: "))
contagem += 1
media_saltos += 1
if salto > melhor_salto:
melhor_salto = salto
if salto < pior_salto or contagem == 1:
pior_salto = salto
total_saltos += salto
media = total_saltos / media_saltos

print("="*30)
print(f"Melhor salto: {melhor_salto}")
print(f"Pior salto: {pior_salto}")
print(f"Media dos demais saltos: {media:.2f}")
print("\n")
print("Resultado final: ")
print(f"{atleta}: {media:.2f}")


Minha duvida ai e que apos o usuario nao colocar o nome, nao mostra o nome no final, me parecia ser facil mudar, mas deu um branco, help!


  


2. MELHOR RESPOSTA

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 03/06/2018 - 11:29h

Segue o código com o laço de repetição:

# Lista com o nome de cada salto
texto_salto = ['Primeiro', 'Segundo', 'Terceiro', 'Quarto', 'Quinto']

while True:
# Lista com o valor dos saltos
saltos_do_atleta = [0.0, 0.0, 0.0, 0.0, 0.0]

# Outras variáveis
melhor_salto = pior_salto = media_saltos = 0

# Solicitado o nome do atleta
atleta = input("\nAtleta: ")

# Verificando se o nome do atleta foi digitado
if atleta != '':
for c in range(0, 5):
saltos_do_atleta[c] = float(input(f"{texto_salto[c]} salto: "))

# Ordenando a lista de saltos
saltos_do_atleta.sort()

# Melhor, Pior e Média
melhor_salto = max(saltos_do_atleta)
pior_salto = min(saltos_do_atleta)

# Excluindo o melhor e o pior salto da média
media_saltos = (saltos_do_atleta[1] + saltos_do_atleta[2] + saltos_do_atleta[3])/3

# Exibindo os resultados
print("="*30)
print(f"Melhor salto............: {melhor_salto}")
print(f"Pior salto..............: {pior_salto}")
print(f"Media dos demais saltos.: {media_saltos:.2f}\n")
print("Resultado final: ")
print(f"{atleta}: {media_saltos:.2f}")
else:
print('Informe o nome do atleta\n')

print('\nDeseja enviar os dados de outro atleta?\n1.Sim\n2.Não')
opcao = int(input('Opção: '))
if opcao == 2:
break


Abraço,
Diego M. Rodrigues

3. Re: Duvida exercicio (2) [RESOLVIDO]

Diego Mendes Rodrigues
diegomrodrigues

(usa Ubuntu)

Enviado em 02/06/2018 - 18:41h

Opa!

Você precisa armazenar os saltos em uma LISTA.

Segue a solução utilizando listas e funções de listas.

# Lista com o nome de cada salto
texto_salto = ['Primeiro', 'Segundo', 'Terceiro', 'Quarto', 'Quinto']

# Lista com o valor dos saltos
saltos_do_atleta = [0.0, 0.0, 0.0, 0.0, 0.0]

# Outras variáveis
melhor_salto = pior_salto = media_saltos = 0

# Solicitado o nome do atleta
atleta = input("Atleta: ")

# Verificando se o nome do atleta foi digitado
if atleta != '':
for c in range(0, 5):
saltos_do_atleta[c] = float(input(f"{texto_salto[c]} salto: "))

# Ordenando a lista de saltos
saltos_do_atleta.sort()

# Melhor, Pior e Média
melhor_salto = max(saltos_do_atleta)
pior_salto = min(saltos_do_atleta)
media_saltos = (saltos_do_atleta[1] + saltos_do_atleta[2] + saltos_do_atleta[3])/3

# Exibindo os resultados
print("="*30)
print(f"Melhor salto............: {melhor_salto}")
print(f"Pior salto..............: {pior_salto}")
print(f"Media dos demais saltos.: {media_saltos:.2f}\n")
print("Resultado final: ")
print(f"{atleta}: {media_saltos:.2f}")
else:
print('Informe o nome do atleta')


Abraço,
Diego M. Rodrigues


4. Re: Duvida exercicio (2)

thalis
himen3

(usa Arch Linux)

Enviado em 02/06/2018 - 19:25h

diegomrodrigues escreveu:

Opa!

Você precisa armazenar os saltos em uma LISTA.

Segue a solução utilizando listas e funções de listas.

# Lista com o nome de cada salto
texto_salto = ['Primeiro', 'Segundo', 'Terceiro', 'Quarto', 'Quinto']

# Lista com o valor dos saltos
saltos_do_atleta = [0.0, 0.0, 0.0, 0.0, 0.0]

# Outras variáveis
melhor_salto = pior_salto = media_saltos = 0

# Solicitado o nome do atleta
atleta = input("Atleta: ")

# Verificando se o nome do atleta foi digitado
if atleta != '':
for c in range(0, 5):
saltos_do_atleta[c] = float(input(f"{texto_salto[c]} salto: "))

# Ordenando a lista de saltos
saltos_do_atleta.sort()

# Melhor, Pior e Média
melhor_salto = max(saltos_do_atleta)
pior_salto = min(saltos_do_atleta)
media_saltos = (saltos_do_atleta[1] + saltos_do_atleta[2] + saltos_do_atleta[3])/3

# Exibindo os resultados
print("="*30)
print(f"Melhor salto............: {melhor_salto}")
print(f"Pior salto..............: {pior_salto}")
print(f"Media dos demais saltos.: {media_saltos:.2f}\n")
print("Resultado final: ")
print(f"{atleta}: {media_saltos:.2f}")
else:
print('Informe o nome do atleta')


Abraço,
Diego M. Rodrigues

Entao cara entendi oque foi dito, mas nao tem ciclo de repeticao. Minha duvida mesmo foi em fazer isso.



5. Re: Duvida exercicio (2) [RESOLVIDO]

thalis
himen3

(usa Arch Linux)

Enviado em 03/06/2018 - 11:51h

Valeu tinha feito parecido com isso mas nao coloquei outra opcao, me ensinou uma parada com listas que esta me ajudando muito na proxima fase dos exercicios, obrigado!