Maison > développement back-end > Tutoriel Python > Comment gérer ValueError lors de la division des lignes d'entrée pour les paires question-réponse ?

Comment gérer ValueError lors de la division des lignes d'entrée pour les paires question-réponse ?

Susan Sarandon
Libérer: 2024-11-15 01:23:02
original
926 Les gens l'ont consulté

How to Handle ValueError When Splitting Input Lines for Question-Answer Pairs?

Diviser les lignes d'entrée pour les paires question-réponse

Lors de la division d'une ligne d'entrée en plusieurs variables, vous pouvez rencontrer une ValueError indiquant un besoin pour plus ou moins de valeurs à déballer. Ce problème survient lorsque la ligne en cours de fractionnement ne contient pas le caractère délimiteur utilisé dans la méthode split.

Plus précisément, dans le code fourni, chaque ligne du fichier d'entrée est divisée au niveau des deux points (:). Si une ligne ne contient pas de deux-points ou plusieurs deux-points, la méthode de fractionnement échouera.

Causes des erreurs de valeur

  • Trop peu de valeurs : Lorsque la ligne de saisie ne contient pas de deux-points, la méthode split renvoie une liste avec une seule chaîne vide. L'attribution de cette liste à plusieurs variables (par exemple, questions, réponses) génère une ValueError car il n'y a pas assez de valeurs à décompresser.
  • Trop de valeurs : Si une ligne contient plus d'un deux-points, la méthode split renvoie une liste avec plus d'éléments que prévu. Lors de l'attribution de cette liste à plusieurs variables, une ValueError est générée car il y a trop de valeurs à décompresser.

Solution

Pour résoudre ce problème, vous pouvez vérifiez si la ligne de saisie contient le nombre attendu de valeurs avant de la diviser :

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)
Copier après la connexion

Cette vérification garantit que la ligne contient deux points avant de tenter de divisez-le. Si la ligne ne contient pas de deux-points, elle est ignorée, empêchant ainsi la génération de ValueError.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal