Fractionnement des lignes d'entrée : gestion des erreurs de valeur
Lors du fractionnement des lignes d'entrée à l'aide de la fonction split(), il est crucial de s'assurer que les lignes d'entrée contiennent le séparateurs attendus. Si une ligne ne dispose pas du séparateur désigné, tel qu'un deux-points (:), la fonction split() renverra soit une valeur unique, soit une exception.
Comprendre les ValueErrors
Cause des ValueErrors
Dans votre code spécifique, les ValueErrors proviennent probablement de la dernière ligne du fichier d’entrée, qui peut contenir uniquement des espaces vides. Lorsque vous exécutez string.strip() sur ces espaces vides, il renvoie une chaîne vide qui, lorsqu'elle est divisée sur deux points, donne une chaîne vide. Cela vous laisse avec un seul élément, déclenchant l'erreur "besoin de plus d'une valeur pour décompresser".
Solution
Pour éviter ces ValueErrors, vous pouvez implémenter une vérification pour garantir que chaque ligne a le séparateur attendu. Voici une version modifiée de votre code :
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)
En ajoutant l'instruction if qui vérifie le séparateur deux-points, vous filtrez les lignes qui en manquent et empêchez la fonction split() de générer des ValueErrors.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!