1
resposta

invalid syntax, pq?


def carregar_acessos():
    dados = []
    marcacoes = []

    arquivo = open('acesso.csv', 'rb')
    leitor = csv.reader(arquivo)
    for acessou_home, acessou_como_funciona,
        acessou_contato, comprou in leitor:

        dados.append([acessou_home, 
                      acessou_como_funciona, 
                      acessou_contato])
        marcacoes.append(comprou)

    return dados, marcacoes
1 resposta

Oiii Jéssica, como você está?

Peço desculpas pela demora em obter um retorno.

Esse erro está acontecendo por causa da quebra de linha na cláusula for. Atualmente para quebrar linhas em instruções dessa forma, temos que colocar uma barra invertida para que o interpretador entenda que é uma continuação, ou então, envolvê-la com parênteses, como mostro abaixo:

Com parênteses:

for (acessou_home, acessou_como_funciona,
       acessou_contato, comprou) in leitor:

Com barra invertida:

for acessou_home, acessou_como_funciona,\
       acessou_contato, comprou in leitor:

Outra forma é deixar tudo em apenas uma linha:

for acessou_home, acessou_como_funciona, acessou_contato, comprou in leitor:

A importância da quebra de linha em instruções grandes é útil para facilitar a visualização. Inclusive, no guia de estilos da linguagem Python (PEP 8), recomenda-se que uma linha não ultrapasse 79 caracteres.

Outro detalhe é que para leitura do arquivo acesso.csv dispensa-se o uso da leitura binária, pois se trata de um arquivo de texto comum.

O código completo corrigido ficará da seguinte forma:

import csv

def carregar_acessos():
   dados = []
   marcacoes = []

   arquivo = open('acesso.csv', 'r')
   leitor = csv.reader(arquivo)
   for (acessou_home, acessou_como_funciona,
       acessou_contato, comprou) in leitor:

       dados.append([acessou_home,
                     acessou_como_funciona,
                     acessou_contato])
       marcacoes.append(comprou)

   return dados, marcacoes

Qualquer dúvida fico à disposição.

Grande abraço!