Программа определяет, является ли последовательность геометрической или алгебраической. Всё работает, но лишь до того момента, пока все элементы в списке не станут типа float, в таком случае проверка на алгебраическую начинает работать неверно. Пример: 1.1 2.2 3.3 4.4 – алгебраическая прогрессия с отношением 1.1, но ф-я возвращает False.
sequence = str(input('Введите последовательность чисел: '))
lst = [float(i) for i in sequence.split()]
def is_geometric(lt):
ratio = lt[1] / lt[0]
for i in range(1, len(lt)):
if lt[i] / lt[i-1] != ratio:
return is_algeb(lt)
return f'Данная последовательность является геометрической. Её отношение равно {ratio}'
def is_algeb(lt):
ratio = lt[1] - lt[0]
for i in range(1, len(lt)):
if lt[i] - lt[i-1] != ratio:
return 'Данный набор чисел не является последовательностью'
return f'Данная последовательность является алгебраической. Её отношение равно {ratio}'
print(is_geometric(lst))

print(lt[i] - lt[i-1])в цикл, вы бы уже поняли причину неверного результата. – Эникейщик Oct 08 '21 at 08:55