Jump to content
Fórum Script Brasil
  • 0

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


Question

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 to post
Share on other sites

1 answer to this question

Recommended Posts

  • 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      148907
    • Total Posts
      645002
×
×
  • Create New...