Python

Программирование на Python

Прошу помощи с задачей онлайн - курса по программированию на языке Python с сайта coursera.org

Суть задачи: По данному натуральному n вычислите сумму 1²+2²+3²+...+n².

Формат ввода

Вводится натуральное число.

Формат вывода

Выведите ответ на задачу.

Примеры:

Тест 1
Входные данные:
1

Вывод программы:
1

Тест 2
Входные данные:
2

Вывод программы:
5

Тест 3
Входные данные:
3

Вывод программы:
14

Посылаю им вот такой код:
a = 1
s = 0
while a < 3:
a = int(input())
s = s + a**2
print(s)

Их проверяющая система выдает:

Test 1
input:
1
Runtime error

Подскажите пожалуйста, что не так? Не понимаю в чем ошибка. В PyCharm код работает правильно.
> В PyCharm код работает правильно.
это неправда
Nurbol Jagslag
Nurbol Jagslag
5 315
Лучший ответ
Капылов Виктор А вы можете подсказать в чем ошибка? Пожалуйста. В PyCharm, все работает. Входные и выходные данные совпадают как в тестах.
Андрей Горбунов Если тебя интересует почему скрипт запустился на компе, но не запустился на сервере то вероятно причина в том что админы несколько ограничивают интерпретатор чтобы было меньше нагрузки на сервер в случае фейла. К примеру, на твоем учебном ресурсе ты скорее всего не сможешь запустить бесконечный цикл/рекурсию/генераторы, так как ограничения сразу дадут о себе знать. И в итоге ты сразу получишь ошибку. Этакая защита от дурака. Твой действия интерпретатор на сервере рассматривает как 'опасные'. В то время как на твоем пк ограничений никаких нет, ты можешь делать что хочешь.
Во всяком случае это говорит о том что твой код ненадежный. Попробуй переписать скрипт через for и функцию range, так гораздо нагляднее и проще для понимания
На вход даётся всего (внимание!!!) одно число. В цикле оно считалось один раз, на второй раз - Runtime Error, так как читать нечего, вход пустой. В общем, весь цикл не имеет смысла.
Вы, наверное, задание неправильно поняли: на входе будет не 1, 2, 3, а одно любое конкретное число n. Нужно сложить квадраты всех чисел из промежутка [1;n]. То есть, если на входе 7, то сумма будет такой: s = 1^2 + 2^2 + 3^2 + 4^2 + 5^2 + 6^2 + 7^2
С чего вдруг взялось a < 3 ???a <= n! Ну и a += 1

seq_sum = lambda n: 0 if n < 1 else n**2 + seq_sum(n - 1)
print(seq_sum(int(input())))
Alex Parshuk
Alex Parshuk
18 091
def foo(a):
..if a>1:
....return a*a+foo(a-1)
..else:
....return 1

print(foo(1))
print(foo(2))
print(foo(3))
Хз
Игорь Терно
Игорь Терно
2 644
Runtime error значит незавершенность или зацикливание программы. У тебя идет зацикливание. То есть а никогда не будет больше или равно 3. Тебе нужно переделать программу так, чтобы она завершалась. Поставь в конце break или end().
a = 1
s = 0
while a < 3:
a = int(input())
s = s + a**2
print(s)
break
Капылов Виктор не работает все равно. Если поставить break в конце кода, то при вводе 2, вывод 4, что не верно.
Скажи название задания и тему. Кину тебе решение
Игорь Терно Сумма квадратов...
Это же очевидно наверное
Rahmankul Niazaliev Факториалов, а не квадратов... Видимо, не очевидно)
e = 7
i = 0
for e in range(e):
e += 1
i = i + e ** 2
print (i)

чот тут все намудрили, все же просто