Подсчет и создание идеальных квадратов
-
08-10-2019 - |
Вопрос
Мне нужен несколько советов о том, как написать программу Python, в которой она дает вам список первых n идеальных квадратов в формате списка. Выход должен выглядеть так:
Сколько квадратов?: 5 [1, 4, 9, 16, 25
Это то, что у меня сейчас:
n = int(raw_input("How many squares? "))
Теперь для следующей части мне нужно создать список первых n квадратов. Любые предложения о том, как? Спасибо за ваше время и совет.
Решение
Используйте список пониманий:
[ 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]