0

重複の可能性:
範囲内で印刷する方法は?

次のようなグリッド座標を作成する必要があります。

(  0,   0):  0     (125,   0):  1     (250,   0):  2     (375,   0):  3     (500,   0):  4     (625,   0):  5
(  0, 125):  6     (125, 125):  7     (250, 125):  8     (375, 125):  9     (500, 125): 10     (625, 125): 11
(  0, 250): 12     (125, 250): 13     (250, 250): 14     (375, 250): 15     (500, 250): 16        (625, 250): 17
(  0, 375): 18     (125, 375): 19     (250, 375): 20     (375, 375): 21     (500, 375): 22     (625, 375): 23

(x、y):i

プログラムの最初の行は次のようになります。範囲24のiの場合:

私はiのみを使用できます。これ以上forループがあってはなりません。私は2枚のプリントと1枚のプリントを使用することが許可されています。プログラムの最大長は4行です。

私はPythonの完全な初心者です。これは私には多すぎます。それは私が何か役に立つことを学ぼうとして潜んでいるプログラミングクラスのためのものです。これは先週の彼らの宿題です。

どんな種類の助けにも感謝するでしょう。特にあなたが私にそれを簡単に提示することができれば-のように。:)

4

2 に答える 2

1
(  0,   0):  0  (125,   0):  1  (250,   0):  2  (375,   0):  3  (500,   0):  4  (625,   0):  5  
(  0, 125):  6  (125, 125):  7  (250, 125):  8  (375, 125):  9  (500, 125): 10  (625, 125): 11 
(  0, 250): 12  (125, 250): 13  (250, 250): 14  (375, 250): 15  (500, 250): 16  (625, 250): 17
(  0, 375): 18  (125, 375): 19  (250, 375): 20  (375, 375): 21  (500, 375): 22  (625, 375): 23

あなたが求めた出力のように見えます。

1 つの for ループ、if ステートメント、および <= 4 行という要件に固執して、次のように思いつきました。

for i in range(24):
    if i%6==0 :
        print ''.join(["(%3s, %3s):%3s  "%(x*125, i/6*125 ,x+i) for x in range(6)])

あなたはPythonの初心者だと言っているので、これはリスト内包表記を使用していることを知っておく必要があります。これは、次のリンクでよく説明されていると思います

:内包表記/

Python リスト内包表記を読み上げるには?

編集: 説明に正確に適合するコード: 1 つの for ループ、1 つの if ステートメント、2 つの print ステートメント

for i in range(24):
    if i%6==0 and i!=0:
        print ''
    print "(%3s, %3s):%3s "%((i%6)*125, i/6*125 ,i) ,
于 2012-12-16T20:31:55.077 に答える
0

はい、どうぞ:

>>> print "\n".join(map("\t".join, [["(%s, %s): %s" % (x*125, y*125, y*6+x) for x in range(6)] for y in range(4)]))
(0, 0): 0       (125, 0): 1     (250, 0): 2     (375, 0): 3     (500, 0): 4     (625, 0): 5
(0, 125): 6     (125, 125): 7   (250, 125): 8   (375, 125): 9   (500, 125): 10  (625, 125): 11
(0, 250): 12    (125, 250): 13  (250, 250): 14  (375, 250): 15  (500, 250): 16  (625, 250): 17
(0, 375): 18    (125, 375): 19  (250, 375): 20  (375, 375): 21  (500, 375): 22  (625, 375): 23

少し面倒ですが、結果は必要なもののように見えます。

PSスプレッド

>>> node = lambda x,y: "(%s, %s): %s" % (x*125, y*125, y*6+x)
>>> coords = [[node(x, y) for x in range(6)] for y in range(4)]
>>> print "\n".join(map("\t".join, coords))
于 2012-12-16T19:59:58.070 に答える