Дано целое число N (> 1), а также первый член A и разность D арифметической прогрессии
Дана простая задача: дано целое число N (> 1), а также первый член A и разность D арифметической прогрессии. Сформировать и вывести массив размера N, содержащий N первых членов данной прогрессии: A, A + D, A + 2·D, A + 3·D, … .
Сталкиваюсь с проблемой в 6ой строке: для r invalid syntax, не понимаю как её решить, многое перепробовал, интернет не помог, преподаватели тем более. Подскажите как обойти ошибку или какие материалы посмотреть, чтобы стало понятно почему не принимает код?
N=10
A=1
D=3
r=[]
A=[i for i in range(N)
r.append(A+i*D) ]
print(*A)
Ответы (2 шт):
Создание нужного списка может выглядеть так:
N=10
A=1
D=3
r=[A+i*D for i in range(N)]
print(*r)
Я немножко изменил ваш код, потому что вы, наверно, хотели сделать так:
N=10
A=1
D=3
r=[]
for i in range(N): # <--- здесь разница
r.append(A+i*D) # <--- здесь маленькая разница — удалена квадратная скобка
print(*r) # <--- и здесь маленькая разница - r вместо A
Вывод:
1 4 7 10 13 16 19 22 25 28
Объяснение:
Вы не хотите переписать переменную A
(созданную командой A=1
) командой
A=[i for i in range(N)
r.append(A+i*D) ] # не правильный синтаксис, должно быть if ... или for ...
а постепенно заполнить список r
членами арифметической последовательности.
Значит, надо убрать часть A=[i
и заключительную квадратную скобку ]
, добавить двоеточие (:
) после range(N)
, получая таким образом правильный цикл for
:
for i in range(N):
r.append(A+i*D)
Но и, естественно, после этого вы хотели вывести на экран не А
, а r
...