Арифметическая прогрессия

Составить программу вычисления n первых членов арифметической прогрессии, заданных формулой ak+1=ak+d, где a1, k и d запрашиваются при запуске программы

При вводе данных: a1 = 1, d = 2, k = 3 Ответ выводит 1 3 5

Написал код, но хотел бы спросить, правильный ли он?

a1 = int(input('Введите первый номер члена a1: ')) 
d = int(input('Введите разность ар.пр. : '))
k = int(input('Введите последний номер члена k: '))

result = '' #Инициализация переменной с пустым значением

for i in range(k):   
    result += str(a1+i*d) + ' '

print('\nВсе члены прогрессии', result)

Ответы (1 шт):

Автор решения: Павел

Да, код рабочий.

Единственное, что можно сказать: так как вы собираете последовательность, то логичнее хранить ее в списке, а не строке, и также логичнее не преобразовывать элементы к строке до того момента, пока вам не понадобится вывести элементы на печать.

Иначе представьте: вам в дальнейшем придется работать с этой последовательностью, и тогда придется доставать ее из этой строки, что не очень удобно.

Предлагаю написать как-то так, логика работы не меняется, но этот код чуть более архитектурный:

a1 = int(input('Введите первый номер члена a1: '))
d = int(input('Введите разность ар.пр. : '))
k = int(input('Введите последний номер члена k: '))

result = []

for i in range(k):
    result.append(a1+i*d)

print('\nВсе члены прогрессии', ' '.join([str(x) for x in result])) 
→ Ссылка