Я предлагаю вам обработать символы строки по порядку (для ch в str) и либо (а) добавить их в свой список; или (б) накапливать их в число:
str = "1+22-3*4/5"
tokens = []
number = None
operators = "+-*/"
digits = "0123456789"
for ch in str:
if ch in operators:
if number is not None:
tokens.append(number)
tokens.append(ch)
continue
elif ch in digits:
if number is None:
number = ch
else:
number += ch
continue
else:
# what else could it be?
pass
# After loop, check for number at end
if number is not None:
tokens.append(number)
Нет. Если Вы, приложение является небольшим и Вы не чувствуете боли удаления и устанавливаете затем Значительные обновления, самая легкая вещь сделать.
Я только переместился бы в более усовершенствованные механизмы обновления, если бы пользовательский опыт Значительного обновления был недопустим.
Обычно я считаю, что незначительные обновления полезны только в нескольких случаях:
1: Ошибка удаления : есть ошибка в последовательности удаления установленного MSI . Поскольку при незначительном обновлении продукт не удаляется, а просто устанавливается заново. Это позволяет исправить все ошибки в последовательности удаления до ее вызова.
2: Исправление : Для очень большого продукта требуется очень небольшая настройка. Скажите, исправление ошибки для одного файла или нескольких файлов. Как правило, через пару недель для всех крупных продуктов, в которых вам нужно заменить всего несколько файлов, требуется небольшая ошибка. Крупные обновления могут быть ужасными для этого - удалите и переустановите только 4 из 10000 файлов?
3: Исправление : Вы хотите установить исправление для своего продукта. MSI допускает крупные обновления, но с ними еще сложнее работать, чем с небольшими исправлениями обновления (которые также сложны).
На мой взгляд, функция «Малое обновление» никогда не должна использоваться для каких-либо целей. Только основные или второстепенные обновления.