1
resposta

[Sugestão] resolução

import csv
import os
fieldnames = ["Nome", "Nota"]
arquivo='alunos.csv'
if not os.path.exists(arquivo):
    with open(arquivo,'w',newline='',encoding='utf-8') as f:
       cabecalho=csv.DictWriter(f,fieldnames=fieldnames)
       cabecalho.writeheader()

while True:
   
   nome=input('nome do aluno ou digite (sair) -> para encerrar: ')
   if nome.lower()=='sair':
     break
   if not nome.replace(" ","").isalpha():
       print('Erro, digite apenas palavras')
       continue
   try:   
     nota=float(input('nota do aluno: '))
   except ValueError:
     print('\nErro: digite apenas números!')
     continue 
   
   with open(arquivo, "a", newline="",encoding='utf-8') as f:
      escritor = csv.DictWriter(f,fieldnames=fieldnames)
      escritor.writerow({'Nome':nome,'Nota':nota})
    
print('\nDESEJA VISUALIZAR A TABELA DE ALUNOS APROVADOS? ')
opcao=input('Digite s para sim e n para não: ')
if opcao.lower()=='s':
   with open(arquivo, "r", newline="",encoding='utf-8') as f:
         leitor = csv.DictReader(f)
         for linha in leitor:
          try:
               n=float(linha['Nota'])
               if n >=7:
                  print(f"{linha['Nome']} - {linha['Nota']}") 
          except ValueError:
             pass
1 resposta

Oi, Andressa! Como vai?

Agradeço por compartilhar.

Gostei da sua solução, importante como você organizou bem a escrita e leitura do arquivo CSV, validou os dados de entrada e separou corretamente os momentos de gravação e visualização, o que mostra um bom entendimento do desafio proposto.

Continue explorando esse tipo de prática, pois fortalece bastante a lógica e o cuidado com dados persistidos.

Siga testando variações do código e simulando situações diferentes de uso.

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