Erro em carregue_dados()

Erro em carregue_dados()

por José Coelho de Pina -
Número de respostas: 7

Se você está com erro na sua função carregue dados, então execute is teste a seguir, no Python Shell, como está sugerido nos comentários contidos no comentário (docstring) da função. Se você ainda tiver dúvidas, coloque os seus resultados aqui.

 

Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from hbo import *
>>> dados = carregue_dados("GoT.csv")
>>> dados[0]
["Petyr 'Littlefinger' Baelish", 15, 20, 1, 15, 23, 42]
>>> dados[1]
['Bronn', 17, 16, 3, 20, 27, 23]
>>> dados[2]
['Melisandre', 14, 45, 25, 17, 48, 32]
>>> dados[-1]
['Grand Maester Pycelle', 17, 0, 46, 19, 0, 58]
>>> dados[-2]
['Jon Snow', 10, 13, 0, 13, 49, 26]
>>> type(dados[-1][0])
<class 'str'>
>>> type(dados[-1][1])
<class 'int'>
>>> type(dados[0][2])
<class 'int'>
>>> type(dados[0][6])
<class 'int'>
>>> type(dados[0][7])
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> len(dados)
30
>>> 
Em resposta à José Coelho de Pina

Re: Erro em carregue_dados()

por Gabriel Tupinamba da Cunha Leandro -

Aqui o que eu te falei 

Em resposta à Gabriel Tupinamba da Cunha Leandro

Re: Erro em carregue_dados()

por José Coelho de Pina -

Oi Tupi,

Excelente! Muito obrigado por colocar aqui o teste da sua função.

O teste que você fez é a diferente daquele contido no enunciado e na mensagem anterior, certo?

O teste deve ser idêntico ao da mensagem ou no comentário do EP.

>>> nome_arq = "GoT.csv"
>>> dados = carregue_dados(nome_arq)
>>> dados[1]
['Bronn', 17, 16, 3, 20, 27, 23]
>>> len(dados)
30
>>> fi = open("GoT.csv", "r")
>>> type(nome_arq)
<class 'str'>
>>> type(fi)
<class '_io.TextIOWrapper'>
>>> dados = carregue_dados(fi)
Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    dados = carregue_dados(fi)
    [...]
TypeError: invalid file: <_io.TextIOWrapper name='GoT.csv' mode='r' encoding='UTF-8'>
>>> help(carregue_dados)
Help on function carregue_dados in module __main__:

carregue_dados(nome_arq)
    (str) -> list
    
    Recebe um string `nome_arq` com o nome de um arquivo com dados no
    formato CSV.  Cada linha desse arquivo contém um registro de
    dados.  Cada registro consiste de 7 campos separado por vírgula
    como especificado no enunciado.
.
Em resposta à José Coelho de Pina

Re: Erro em carregue_dados()

por Marcos Caires Pedroni -

Boa noite, segue um print do Python Shell com o retorno da função print(main) e os testes sugeridos, não vejo diferenças e o corretor continua atribuindo nota 0 afirmando que minha função explode, oq está errado? 

Anexo erro ep3.png
Em resposta à Marcos Caires Pedroni

Re: Erro em carregue_dados().

por José Coelho de Pina -

Oi Marcos,

Quais as mensagens de erro?

Leia o tópico EP01, limites de recursos e termino da correção

Ideias?

Em resposta à José Coelho de Pina

Re: Erro em carregue_dados().

por Marcos Caires Pedroni -

Não tive ideias sobre o que pode estar acontecendo, as ideias sobre o que geralmente falha no corretor não funcionaram...

 

Nota 0 / 10
Relatório de avaliação
Iniciando testes da função carregue_dados()... 
Testando os exemplos no enunciado... (vale 1 ponto(s)) 
comprimento da lista retornada por carregue_dados() está errado 
dica: comprimento retornado: 31 
dica: comprimento esperado: 30 
erros encontrados: -1.0 
Testes secretos ... piscando (vale 3 ponto(s)) 
comprimento da lista retornada por carregue_dados() está errado 
comprimento da lista retornada por carregue_dados() está errado 
comprimento da lista retornada por carregue_dados() está errado 
erros encontrados: -3.0 
Iniciando testes da função main()... 
Testando os exemplos no enunciado... (vale 2 ponto(s)) 
main() explodiu 8-O 
erros encontrados: -2.0 
Testes secretos ... piscando (vale 4 ponto(s)) 
main() explodiu 8-O 
main() explodiu 8-O 
main() explodiu 8-O 
erros encontrados: -4.0 
Seu programa não passou no(s) teste(s) acima. triste 
Correção encerrada! virando os olhos 

Em resposta à Marcos Caires Pedroni

Re: Erro em carregue_dados().

por José Coelho de Pina -
Python 3.5.3 (default, Jan 19 2017, 14:11:04) 
[GCC 6.3.0 20170118] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> "1x2x3x".split('x')
['1', '2', '3', '']
>>> 
Em resposta à José Coelho de Pina

Re: Erro em carregue_dados().

por Marcos Caires Pedroni -

Muito obrigado pela resposta, consegui ver o erro, não era perceptível quando printava. Infelizmente não há mais tempo para submetê-lo mas fico satisfeito por saber o porquê de ter zerado e não cometer mais esse erro com o split.