Дано целое число 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 шт):

Автор решения: MBo

Создание нужного списка может выглядеть так:

N=10
A=1
D=3
r=[A+i*D for i in range(N)]
print(*r)
→ Ссылка
Автор решения: MarianD

Я немножко изменил ваш код, потому что вы, наверно, хотели сделать так:

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...

→ Ссылка