Потому что «на отступах». Попробуйте написать аналогичный этому фрагмент в паскаль-стиле, где внутренности цикла обрамлены сверху repeat и снизу until i<10 соответственно
Паскалевский until — вполне удобная конструкция, но совершенно не вписывается в питоновский синтаксис «на отступах».
Интересно, что Ruby, язык чуть более близкий к паскалю, чем python, и достаточно успешный, в качестве альтернативы вообще не рассматривается.
Стандартая формулировка: «дерево — односвязный граф без циклов».
Обычно ей предшествует определение графа, и, обычно, где-то рядом отмечают: «мы будем рассматривать графы без петель».
Ввиду того, что графы с петлями так сразу отметают, возникает искус использовать слово «петля» вместо «цикл».
Сам этим грешу )
Тут вон подсказали: дерево — это связный граф без петель. Вики в помощь.
Использование общепринятой терминологии расширяет возможности для диалога, а вбрасывание узкоспецифических формулировок — шулерский трюк.
Человек дал (уточнением, в скобочках) «оптимальный путь в дереве маршрутов с несколькими точками доставки» — я прочел, как написано.
Что и как вы решали — это на вашей совести. Я же воздержусь громоздить домыслы сверх поставленой задачи.
Скажите, а как заказчик может оценить качество вашего решения? Судя по сложности описания — никак. На месяцы шлифовки накладываются сезонные колебания рынка — чтобы их развести, нужны годы — за годы меняется рынок… )
Ок, вы прочитали задачу как погруженный в предметную область практик, а я — как мимо проходивший «самый нудный».
Хотите меня спихнуть с разговора, козыряя своим портфолио — пожалуйста. Пусть это станет междусобойчиком разработчиков софта для пицца-курьеров.
Find a Number X whose sum with its digits is equal to N
def f(N):
res = []
for x in range(max(N - 9 * len(str(N)), 1), N):
if x + sum(map(int, str(x))) == N:
res.append(x)
print(f'N = {N}, X : {res or [-1]}')
f(21)
f(5)
f(100000001)
вывод N = 21, X : [15]
N = 5, X : [-1]
N = 100000001, X : [99999937, 100000000]
Спасибо, что откликнулись.
Буду вдвойне благодарен, если обратите внимание на… кх-м-м (внушительным голосом) Ярким примером (генератора) являются функции range и enumerate
Прошу прощения, но я возражал именно на это.
Компактность набора ключевых слов — одно из достоинств этого языка.
Интересно, что Ruby, язык чуть более близкий к паскалю, чем python, и достаточно успешный, в качестве альтернативы вообще не рассматривается.
В том-то и дело, что речь шла о дереве.
Обычно ей предшествует определение графа, и, обычно, где-то рядом отмечают: «мы будем рассматривать графы без петель».
Ввиду того, что графы с петлями так сразу отметают, возникает искус использовать слово «петля» вместо «цикл».
Сам этим грешу )
Использование общепринятой терминологии расширяет возможности для диалога, а вбрасывание узкоспецифических формулировок — шулерский трюк.
Человек дал (уточнением, в скобочках) «оптимальный путь в дереве маршрутов с несколькими точками доставки» — я прочел, как написано.
Что и как вы решали — это на вашей совести. Я же воздержусь громоздить домыслы сверх поставленой задачи.
Хотите меня спихнуть с разговора, козыряя своим портфолио — пожалуйста. Пусть это станет междусобойчиком разработчиков софта для пицца-курьеров.
У графов есть вершины и рёбра. Завяжите узел на память )
поразмышляйте об этом за утренним кофе.
Помедитируйте над этим утверждением, это может помочь. Просто подумайте, а не сыпьте учеными терминами )
Ваш творческий метод не позволит решить никакую задачу — у вас столько плюсов )
Как будто в бурях есть покой!
вывод
N = 21, X : [15]
N = 5, X : [-1]
N = 100000001, X : [99999937, 100000000]
Такой вот удар от классика.
пламЯнноокий менеджер нормуль? )
Буду вдвойне благодарен, если обратите внимание на… кх-м-м (внушительным голосом)
Ярким примером (генератора) являются функции range и enumerate
Прошу прощения, но я возражал именно на это.