Скобочные конструкции, в которых нет вложенности (или она фиксировано очень неглубокая) можно разбирать регулярными выражениями. Написать генератор-функцию interval(diap), которой передаётся строка diap следующего формата:
- В начале и конце строки стоит по одной круглой или квадратной скобке
- В скобках указаны два числа, разделённые описателем интервала
Число — либо целое, либо вещественное с фиксированной точкой и обязательными целой и дробной частями
- вокруг числа (и для простоты — после необязательного минуса тоже) могут стоять пробелы
Описатель интервала — либо (1) две и более точки, либо (2) конструкция вида «..длина..», где длина — это целое число ⩾2
Количество точек в варианте (1) либо значение длины в варианте (2) — это длина интервала
interval(diap) должна возвращать последовательность чисел типа Fraction от левого числа до правого длины «длина интервала». Круглая скобка вместо квадратной исключает из последовательности соответствующий элемент (начало или конец) и делает её на 1 короче. Все элементы последовательности должны быть равноудалены друг от друга. Если diap не соответствует формату, последовательность пустая.
1 print(*interval("[1.....10)"))
1 13/4 11/2 31/4
Регулярные выражения стоит скомпилировать заранее и хранить в глобальных переменных (задание «написать функцию» это позволяет).