Dividindo linhas de entrada: tratando erros de valor
Ao dividir linhas de entrada usando a função split(), é crucial garantir que as linhas de entrada contenham o separadores esperados. Se uma linha não tiver o separador designado, como dois pontos (:), a função split() retornará um único valor ou uma exceção.
Compreendendo os ValueErrors
Causa de ValueErrors
Em seu código específico, os ValueErrors provavelmente surgem da última linha do arquivo de entrada, que pode conter apenas espaços vazios. Quando você executa string.strip() nesses espaços vazios, ele retorna uma string vazia, que quando dividida em dois pontos fornece uma string vazia. Isso deixa você com um único elemento, acionando o erro "é necessário mais de 1 valor para descompactar".
Solução
Para evitar esses ValueErrors, você pode implementar uma verificação para garantir que cada linha tenha o separador esperado. Aqui está uma versão modificada do seu código:
questions_list = [] answers_list = [] with open('qanda.txt', 'r') as questions_file: for line in questions_file: line = line.strip() if ':' in line: questions, answers = line.split(':') questions_list.append(questions) answers_list.append(answers)
Ao adicionar a instrução if que verifica o separador de dois pontos, você filtra as linhas que não o possuem e evita que a função split() gere ValueErrors.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3