Звучит так, будто вы хотите что-то вроде:
best_est = None
while True:
est = some_estimate_method() # assuming this is a 'str'
if not best_est:
best_est = est
else:
if (float(est) > float(best_est)):
best_est = est
print(best_est, end = '\r')''
В зависимости от направленного отношения оценки (т. Е. Меньше или лучше), вам придется изменить неравенство, чтобы приспособиться.
Однако, если мы посмотрим на ваш пример:
# initial print
3.13658765
# get new estimate (3.1416232)
# overwrite the print
3.1416232
Изначально вы хотели «перепечатать» 3.1
, а затем распечатать все новые символы в новой оценке. Напрашивается вопрос почему бы просто не напечатать всю новую оценку?
Поскольку все значение новой оценки больше, это означает, что искомое сравнение (начиная с индекса 4 и выше) уже проверено при использовании <
или >
для неравенства. Простой вызов print(est, end = '\r')
возвращает курсор консоли в начало строки, каждый раз фактически перезаписывая значение.