Erreur de décompression de valeurs multiples lors du fractionnement de ligne
Lors du fractionnement d'une ligne de texte en plusieurs variables à l'aide de la méthode split(), vous pouvez rencontrer une ValueError indiquant trop peu ou trop de valeurs à décompresser. Cela se produit lorsque le nombre attendu de valeurs de l'opération de division ne correspond pas au nombre de variables attribuées.
Pourquoi cela se produit
La méthode split() divise l'entrée chaîne dans une liste de sous-chaînes basée sur le séparateur spécifié. S’il y a moins de séparateurs que nécessaire, moins que le nombre attendu de valeurs sera renvoyé. À l'inverse, s'il y a plus de séparateurs que prévu, l'opération de division entraînera plus de valeurs que de variables à attribuer.
Cause courante : lignes vides
Une raison courante car cette erreur correspond à des lignes vides à la fin du fichier d’entrée. Lorsque la méthode strip() est utilisée pour supprimer les espaces avant le fractionnement, les lignes vides sont converties en chaînes vides. Une chaîne vide divisée sur un séparateur entraînera une liste vide.
Correction ou solution de contournement
Pour résoudre ce problème, suivez ces étapes :
Partage conditionnel : Utilisez une vérification conditionnelle pour éviter de diviser les lignes sans le séparateur. Par exemple, vous pouvez ajouter la ligne suivante avant l'opération de fractionnement :
if ':' in line: questions, answers = line.split(':')
Cette condition garantit que seules les lignes contenant un deux-points sont fractionnées.
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!