Подсчет и создание идеальных квадратов

Мне нужен совет по написанию программы Python, где он дает вам список первых n совершенных квадратов в формате списка. Результат должен выглядеть следующим образом:

 Сколько квадратов ?: 5  
 [1, 4, 9, 16, 25]

Это то, что у меня есть до сих пор:

n = int(raw_input("How many squares? ")) 

Теперь для следующей части мне нужно создать список первых n квадратов. Любые предложения о том, как? Спасибо за ваше время и совет.

6 Solutions collect form web for “Подсчет и создание идеальных квадратов”

Используйте понимание списка:

 [ a*a for a in xrange(1, n + 1) ] 

Теперь для следующей части мне нужно начать создавать список первых n квадратов. Любые предложения о том, как? Спасибо за ваше время и совет.

С этим вам можно помочь. С другой стороны, опубликуйте свой алгоритм.

Используйте диапазон для создания списка:

 >>> range(10) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 

Используйте список, чтобы получить список x ^ 2

 >>> [x**2 for x in range(10)] [0, 1, 4, 9, 16, 25, 36, 49, 64, 81] >>> 

Более элегантный ответ дает Новиков

 n = int(raw_input("How many squares? ")) map((2).__rpow__, range(1, n+1)) 

или

 from operator import mul n = int(raw_input("How many squares? ")) map(mul, *[range(1, n+1)]*2) 

Кто-то упомянул генераторы – вот как вы их используете в этом случае:

 def sq(n): i=0 while i<n: i+=1 yield i*i if __name__=="__main__": n = int(raw_input("How many squares? ")) print list(sq(n)) 

Или с картой и лямбда-функцией

 n = int(raw_input("How many squares? ")) map(lambda x: x*x, range(n)) 

если вы хотите, чтобы он начинался с 1

 map(lambda x: x*x, range(1, n+1)) 

код:

 list_squares=[] for a in xrange(1, n+1): list_squares.append(a*a) print list_squares 

где n вводит пользователя для количества квадратов, которые он хочет.

Если n=5 то вывод выглядит следующим образом:

 [1, 4, 9, 16, 25]
Python - лучший язык программирования в мире.