分割输入行:处理 ValueErrors
使用 split() 函数分割输入行时,确保输入行包含预期的分隔符。如果一行缺少指定的分隔符,例如冒号 (:),则 split() 函数将返回单个值或异常。
了解 ValueErrors
ValueErrors 的原因
在您的特定代码中,ValueErrors 可能来自于最后一行输入文件,可能只包含空格。当您对这些空白处执行 string.strip() 时,它会返回一个空字符串,当用冒号分割时会给出一个空字符串。这使您只剩下一个元素,触发“需要超过 1 个值来解包”错误。
解决方案
要防止这些 ValueErrors,您可以实施检查确保每行都有预期的分隔符。这是代码的修改版本:
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)
通过添加检查冒号分隔符的 if 语句,您可以过滤掉缺少冒号分隔符的行并防止 split() 函数引发 ValueErrors。
以上是使用 split() 分割输入行时如何处理 ValueErrors?的详细内容。更多信息请关注PHP中文网其他相关文章!