-
-
Save natan20200679/934259a125d64c25d459980f6104f9a6 to your computer and use it in GitHub Desktop.
| """ Foram anotadas as idades e alturas de 30 alunos. Faça um Programa que determine quantos alunos com mais de 13 anos possuem | |
| altura inferior à média de altura desses alunos.""" | |
| idades = [] | |
| alturas = [] | |
| q = 0 | |
| soma = 0 | |
| for i in range(1,31): | |
| idade = int(input("Idade:")) | |
| idades.append(idade) | |
| altura = float(input("Altura:")) | |
| alturas.append(altura) | |
| soma += altura | |
| i += 1 | |
| media = soma / len(alturas) | |
| if idade > 13 and altura < media: | |
| q += 1 | |
| print("\nIdades:",idades) | |
| print("Alturas:",alturas) | |
| print("Média Alturas: %.2f" % media) | |
| print("Alunos com 14 anos ou mais com altura inferior à média:",q) |
Eu fiz 2 cursos de Lógica de Programação a partir de 2 sites diferentes. Não precisa de preocupar em me mostrar um exemplo de código pronto amigo, basta vc me apontar os erros que estou cometendo, e que estão levando ao erro no cálculo que mencionei no código, mas se vc acha melhor me mostrar um exemplo de código que resolve, tudo bem.
Só consigo colocar aqui entre acentos agudos...
from random import randint, random
alunos = list()
# Cria uma estrutura randômica de lista de dicionarios com x alunos
for i in range(31):
idade = randint(10, 20) # cria uma idade entre 10 e 20 anos
altura = round(1 + (1*random()), 2) # cria uma altura ente 1 e 2 metros
aluno = {'idade': idade, 'altura': altura} # cria um novo aluno
alunos.append(aluno) # preenche a lista de alunos com mais um aluno
# Resposta começa aqui...
print(alunos)
media_alturas = round(float(sum([aluno.get('altura')
for aluno in alunos])) / len(alunos), 2)
alunos_13_abaixo_media_altura = [1 if aluno.get('idade') > 13 and aluno.get(
'altura') < media_alturas else 0 for aluno in alunos]
print(
f"Exitem {sum(alunos_13_abaixo_media_altura)} aluno(s) com 14 anos ou mais" +
f"que possuem altura inferior à média ({media_alturas}) de altura do grupo."
)
Testa aí qualquer coisa estamos a disposição.
Se preferir esse mais detalhado em pedaços, para ir estudando parte por parte...
from random import randint, random
alunos = list()
# Cria uma estrutura randômica de lista de dicionarios com x alunos
for i in range(31):
idade = randint(10, 20) # cria uma idade entre 10 e 20 anos
altura = round(1 + (1*random()), 2) # cria uma altura ente 1 e 2 metros
aluno = {'idade': idade, 'altura': altura} # cria um novo aluno
alunos.append(aluno) # preenche a lista de alunos com mais um aluno
# Resposta começa aqui...
print(alunos)
lista_alturas = [aluno.get('altura') for aluno in alunos]
print(lista_alturas)
soma_alturas = round(sum(lista_alturas), 2)
print(soma_alturas)
media_alturas = round(soma_alturas / len(alunos), 2)
print(media_alturas)
alunos_13_abaixo_media_altura = [1 if aluno.get('idade') > 13 and aluno.get(
'altura') < media_alturas else 0 for aluno in alunos]
print(alunos_13_abaixo_media_altura)
print(
f"Exitem {sum(alunos_13_abaixo_media_altura)} aluno(s) com 14 anos ou mais" +
f"que possuem altura inferior à média ({media_alturas}) de altura do grupo."
)
Cara, vou ser bem sincero contigo...achei suas sugestões um pouco rebuscadas ou mais difíceis de compreender, principalmente na segunda linha após o for, e no último parágrafo de código. De qualquer forma te agradeço muito o tempo que gastou comigo, e vou analisar se é melhor eu me basear neste último código que me mostrou, ou se é melhor eu modificar o meu, incluindo idéias do seu.
De boa, a ideia é ver que existem várias possibilidades. No processo de aprendizado é assim... Vamos juntos. No que puder ajudar me coloco a disposição. Tudo de bom.
Sim... E também simulando o loop e a tomada de decisão no if. Sugiro você dá uma olhada no curso gratuito de lógica de programação do curso em vídeo de Gustavo Guanabara, já ouviu falar?
Sobre o escopo para lhe mostra, vou fazer o seguinte daqui para mais tarde te mostro como pensei este algoritmo. Blz?