@qwertyo5

Как реализовать условие правильно?

мне нужно написать функцию которая принимает 2 аргумента start и end и вывести сумму всех чисел в диапазоне от start до end, но если start будет больше end то эти значения нужно поменять местами
def sum_range(start:int, end:int)-> int:

    if start <= end:
        return sum(range(start, end+1))

    else:
        start = end
        end = start
        return sum(range(start, end+1))


в первом случае все работает как надо но если start будет больше end то выводится просто 1, почему?
  • Вопрос задан
  • 105 просмотров
Решения вопроса 2
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Вся функция сводится к одной строке.
def sum_range(start:int, end:int)-> int:
    return (start + end) * (abs(end - start) + 1) / 2;
Ответ написан
trapwalker
@trapwalker Куратор тега Python
Программист, энтузиаст
жесть.
1) правильно подсказали, что эта сумма вычисляется за одно действие.
2) так нельзя обменять две переменные значениями
start = end
end = start

3) питон позволяет сделать это одним присвоением: a, b = b, a
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы