Dúvida programação python (média de notas)

6 respostas
python
J

Boa noite pessoal, estou com duvida em um exercício da faculdade, caso alguém puder me ajudar.

Preciso fazer uma programação que leia os dados de N alunos e apresente na tela se foram
aprovados ou reprovados. O critério que garante a aprovação é que a média aritmética das
4 notas seja maior ou igual 7,0. O valor de N é a quantidade de alunos, e esse valor deve
ser lido do teclado no começo do programa. Faça um laço de repetição para a leitura destes
N alunos. As notas devem ser exibidas ao final do programa com uma casa decimal de
precisão.

Já fiz todo o código, só estou com duvida em como usar a função print para exibir todas as notas digitadas para cada um dos alunos.

Ex:
Escrevo o nome do aluno e em seguida preciso digitar as 4 notas. No final da programação preciso printar o texto logo abaixo:

Nome do aluno - Nota 1 - Nota 2 - Nota 3 - Nota 4 - Média - “Aprovado/ Reprovado”

As notas informadas são números flutuantes.

Já possuo todo o código feito, caso alguém puder me ajudar eu envio o código para ver.

6 Respostas

R

Imprima aquele cabeçalho, faça um loop nos seus dados e vá imprimindo.

J

Estou em duvida em como informar no print cada uma das notas.

Por exemplo:

for i in range(1, quantidade+1):
nome=input(f’Informe o nome do {i}° aluno: ')
notas=[]

for j in range(1, 5):

nota=float(input(fInforme a {j nota do {i aluno: '))

notas.append(nota)

Tenho duvida nessa ultima parte, em como informar cada uma das notas através do print.

print(f’ {nome} … aqui preciso colocar as notas … {media} {resultado}’)

R
notas = ','.join(str(nota) for nota in notas)
print(f'{nome} {notas} {media} {resultado}')
J

Eu testei aqui só que a função acaba imprimindo somente o dado de um aluno. Como eu poderia fazer para imprimir todos os dados informados? Por exemplo, se eu informar 5 alunos preciso fazer o print dos dados dos 5 alunos.

Na função acima somente está sendo feito o print do último aluno informado.

R

Como é mais de 1 aluno, dá para usar um dicionário:

alunos = {}
 //quebrar no 5
while True:
  nomeAluno = //input
  notas = []   //popular notas
  alunos[nomeAluno] = notas;

E vai ter que mudar a lógica de impressão, tem que por dentro de um loop.

R

qtde_alunos = int(input('Insira a quantidade de alunos: '))

for i in range(0, qtde_alunos):
situacao = ‘’

nome_aluno = str(input('Insira o nome do(a) aluno(a): '))

nota1 = float(input('Insira a nota 1:'))
nota2 = float(input('Insira a nota 2:'))
nota3 = float(input('Insira a nota 3:'))
nota4 = float(input('Insira a nota 4:'))

media = (nota1 + nota2 + nota3 + nota4) / 4

if media >= 7.0:
    situacao_aluno = 'aprovado'
    situacao = situacao_aluno

else:
    situacao_aluno = 'reprovado'
    situacao = situacao_aluno

print(f'nome do aluno: {nome_aluno} - nota 1: {nota1} - nota 2: {nota2} - nota 3: {nota3} - nota 4: {nota4} - '
      f'média: {media} - situação: {situacao}')

O código está aqui em cima.

Criado 1 de abril de 2021
Ultima resposta 25 de nov. de 2022
Respostas 6
Participantes 3