Допустим, пользовательский ввод назначен на x
, тогда самый простой ответ:
sum(range(int(x)+1))
Обратите внимание, что range()
сгенерирует список (фактически, тип неизменяемой последовательности в Python 3) чисел вплоть до x
, следовательно, +1
.
С точки зрения вашего исходного кода, есть несколько проблем. Во-первых, вы должны избегать именования переменных так же, как встроенные модули Python, такие как sum
. Во-вторых, вы пытаетесь перебрать набор входных аргументов (например, args = (9,)
в вашем случае), который будет выполнять 9 + (9-1)
или иначе 17
и затем возвращать эту сумму в качестве вывода.
Вместо этого вы можете сделать что-то вроде:
def main(*args):
mysum = 0
for i in range(args[0]+1):
mysum = mysum + i
return mysum
result = main(9)
print(result)
Оба решения вернутся сюда 45
.