По моему вы не поняли меня счас попробую написать в программке.(Нужно время

)Читайте комменты в коде
def select_ending(n, w0, w1, w2):
out = None
d1 = n % 10
d2 = n % 100 // 10
if d2 == 1:
out = w0
else:
if d1 == 1:
out = w1
elif d1 in (2, 3, 4):
out = w2
else:
out = w0
return out
while True:
length = input("Введите расстояние в сантиметрах или нажмите Enter для завершения ")
if not length:
break
try:
n = int(length)
except ValueError:
print("Нужно вводить целое число")
continue
if n == 0:
print("Пусто")
continue
else:
km = n // 100000
x = n % 100000
m = x // 100
sm = x % 100
words = [" километр", " метр", " сантиметр"]
ending = ["ов ", " ", "а "]
outline = "В расстоянии "
intermediateline = [km, m, sm]
size = -1
for number in intermediateline: #цикл добавляет универсальности теперь чтобы добавить миллиметры(или что там за километрами -- световой год(у етой единицы другие окончания уффф)? если надо) достаточно добавить элементы в списки words и intermediateline и добавить формулу нахождения миллиметров
size += 1
if number == 0: #с этим циклом не будет выводится нулевое значение(0 метров к примеру) по моему так симпотичнее
continue
else:
outline += str(intermediateline[size])
outline += words[size]
line = select_ending(intermediateline[size], ending[0], ending[1], ending[2])
outline += line
print(outline)
И записал функцию только один раз

Думал в параметрах функции можно записать список ending одним словом – выдало ощибку пришлось писать поэлементно.Вот тока как бы в цикле For обойтись без строки вывода а то ее код много строк занимает а если просто принтом как у вас оно в столбик выведет ведь?
И еще вопрос.В книжонке написано как выводить результаты программы в текстовый файл и как читать вводимые данные из текстового файла – А можно вывести результаты в таблицу excel (librecalc) и считывать вводные данные из таблиц? и как где про это почитать?