«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Как обрабатывать ошибки значений при разделении строк ввода с помощью `split()`?

Как обрабатывать ошибки значений при разделении строк ввода с помощью `split()`?

Опубликовано 24 ноября 2024 г.
Просматривать:152

How to Handle ValueErrors When Splitting Input Lines with `split()`?

Разделение входных строк: обработка ошибок значений

При разделении входных строк с помощью функции Split() очень важно убедиться, что входные строки содержат ожидаемые разделители. Если в строке отсутствует назначенный разделитель, например двоеточие (:), функция Split() вернет либо одно значение, либо исключение.

Понимание ошибок значений

  • ValueError: для распаковки требуется более 1 значения: Происходит, когда функция Split() возвращает только одно значение, то есть есть во входной строке нет разделителя.
  • ValueError: слишком много значений для распаковки (ожидается 2): И наоборот, эта ошибка указывает на то, что функция Split() вернула больше значений, чем ожидалось. Это часто вызвано несколькими разделителями во входной строке.

Причина ошибок ValueErrors

В вашем конкретном коде ошибки ValueErrors, вероятно, возникают из последней строки в строке ввода. входной файл, который может содержать только пустые места. Когда вы выполняете метод string.strip() для этих пустых мест, он возвращает пустую строку, которая при разделении на двоеточие дает пустую строку. В результате у вас останется один элемент, что вызовет ошибку «для распаковки требуется более 1 значения».

Решение

Чтобы предотвратить эти ошибки ValueError, вы можете реализовать проверку чтобы гарантировать, что каждая строка имеет ожидаемый разделитель. Вот модифицированная версия вашего кода:

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() ошибок ValueError.

Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3