Комбинат имеет 2 эффекта:
объединяет все токены в одну строку
требуется, чтобы все соответствующие токены были смежными без пробелов
Если вы создаете выражение типа
realnum = Word(nums) + "." + Word(nums)
Затем realnum.parseString("3.14")
вернет список из 3 токенов: начальный «3», «.» И конечный «14». Но если вы оберните это в Combine, как в:
realnum = Combine(Word(nums) + "." + Word(nums))
затем realnum.parseString("3.14")
вернет '3.14' (который затем можно преобразовать в число с плавающей запятой, используя действие синтаксического анализа). А так как Combine подавляет пропуски по умолчанию, пропускаемые между pyparsing между токенами, вы случайно не найдете «3.14» в «Ответе 3. 14 - следующий ответ».