Ir para conteúdo
Fórum Script Brasil
  • 0

alguém pode me ajudar com um problema de iniciante ?


alibaba

Pergunta

class estudante(object):
    def __init__(auto, nome):
        auto.nome, auto.notas = nome, []

    def acrescentar_notas(auto, nota):
        auto.notas.append(nota)

    def media (auto):
        return sum(auto.notas) / len(auto.notas)

    def v_notas (auto):
        media = auto.media()
        for valor, nota in (70, "Aprovado"):
            if media >= valor                                   :
                return nota
        else:
            return "Reprovado"

def main():
    print()
    print('Coletando informações da turma')
    a_aula = [] 
    while True:
        print()
        print('{} alunos'.format(len(a_aula)))
        another_estudante = input('append outro aluno ? (s/n)  ')
        if another_estudante[0].lower() != 's':
            break
        print()
        nome_do_estudante = input('What is the student\'s name? ')
        a_aula.append(estudante(nome_do_estudante))
        print()
        print('Estudante :', nome_do_estudante)
        print('-------------------')
        numero_de_testes = int(input('Por favor, insira o número de testes : '))
        for test_num in range(1, numero_de_testes+1):
            print('Teste Numero {}'.format(test_num), end='')
            score = float(input(' : '))
            if score < 0:  
                break
            a_aula[-1].acrescentar_notas(score) 

    print_report(a_aula)

def print_report(a_aula):
    print()
    print('Relatório')
    print()
    for estudante in sorted(a_aula, key=lambda o: o.nome):
        print('aluno: {: 20s} pontuação média no teste: {: 3.2f} nota: {}'.format(
            estudante.nome, estudante.media(), estudante.v_notas()))
    print()
    print('The aula media is {:.2f}'.format(aula_media(a_aula)))

def aula_media(a_aula):
    return sum(estudante.media() for estudante in a_aula) / len(a_aula)

main()

 

 

 

 

erro: 

Traceback (most recent call last):
  File "main.py", line 58, in <module>
    main()
  File "main.py", line 43, in main
    print_report(a_aula)
  File "main.py", line 51, in print_report
    estudante.nome, estudante.media(), estudante.letter_grade()))
  File "main.py", line 13, in letter_grade
    for value, nota in (70, "Aprovado"):
TypeError: cannot unpack non-iterable int object
 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

o unpack é feito em um array de array, no seu caso seria uma tupla de tuplas

(1, 'a') #tupla de dois valores
((1, 'a'),) #tupla de tuplas, perceba a virgula é nessessario caso a tupla tem um unico valor, caso o contrario não sera uma tupla unitaria, na duvida use listas
[(1, 'a')] #lista de tupla

faça a correção no for da linha 13

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...