質問

Pythonプログラムの作成方法に関するアドバイスが必要です。このプログラムでは、リスト形式の最初のNパーフェクトスクエアのリストを提供します。出力は次のようになります。

How many squares?: 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]
>>> 

よりエレガントな答えがNovikovによって提供されます

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]
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top