分割輸入行:處理 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中文網其他相關文章!