Решение
def main():
print("\nThis program will total all the numbers in a range.")
num_1 = int(input("Enter a number: "))
num_2 = int(input("Enter another number: "))
something = [num_1, num_2]
max_num = max(something)
min_num = min(something)
new_list = list(range(min_num, max_num+1))
current_sum = min_num
for i in new_list[1:]:
print(f"{current_sum} + {i} = ", end='')
current_sum += i
print(f"{current_sum}")
print(f"\nSum of all numbers in range: {current_sum}")
while True:
main()
Если вы найдете min
и max
из двух input
, вы можете исключить необходимость ввода пользователем их в правильном порядке.
Для общей процедуры вы можете просто +=
текущую сумму для каждого числа в range
, назначенном пользователем.
В качестве альтернативы вы также можете использовать этот код вместо max
& min
:
"""Replacing min/max with sorted
max_num = max(something)
min_num = min(something)
new_list = list(range(min_num, max_num+1))
current_sum = min_num
"""
something = sorted(something)
new_list = list(range(something[0], something[1]+1))
current_sum = new_list[0]
выход
This program will total all the numbers in a range.
Enter a number: 5
Enter another number: -5
-5 + -4 = -9
-9 + -3 = -12
-12 + -2 = -14
-14 + -1 = -15
-15 + 0 = -15
-15 + 1 = -14
-14 + 2 = -12
-12 + 3 = -9
-9 + 4 = -5
-5 + 5 = 0
Sum of all numbers in range: 0
Fun
Ран 0 до 1000000:)
499995500010 + 999996 = 499996500006
499996500006 + 999997 = 499997500003
499997500003 + 999998 = 499998500001
499998500001 + 999999 = 499999500000
499999500000 + 1000000 = 500000500000
Sum of all numbers in range: 500000500000
Обновление
Усовершенствовал операторы print
в цикле, чтобы придать ему тотальный итоговый результат, который, как кажется, вы изначально искали.
Изменено current_sum
с 0
на min_num
, а затем начался цикл в new_list[1:]
. Это не влияет на сумму, но исключает оператор print
, который показал 0 + x = x
.
Добавлено использование метода sorted
в качестве альтернативы использованию max
& min