1

forカウント ダウンループを作成する課題があります。手順は、結果を次のようにすることです。

12345
1234
123
12
1

私はおそらくこれを実際よりも難しくしているのですが、私は Python にまったく慣れていません。

これまでのところ、私のスクリプトは次のとおりです。

def print_figure():
    for i in range(5, 0, -1):
        for count in range(i):
            print(12345, end='')
        print()

結果は次のとおりです。

1234512345123451234512345
12345123451234512345
123451234512345
1234512345
12345

私は答えを求めているのではなく、修正できる正しい方向へのポインタを求めているだけです。

4

3 に答える 3

1

あなたはほとんどそこにいました。最初のループで 0 から 4 まで、2 番目のループで 0 から 3 までの範囲12345の を使用する代わりに、数値を何度も出力しています。count

それ自体を印刷したいcountが、それを追加するか、ループする範囲を調整して 1 から まで実行するi + 1:

def print_figure():
    for i in range(5, 0, -1):
        for count in range(1, i + 1):
            print(count, end='')
        print()

または使用:

def print_figure():
    for i in range(5, 0, -1):
        for count in range(i):
            print(count + 1, end='')
        print()

デモ:

>>> def print_figure():
...     for i in range(5, 0, -1):
...         for count in range(1, i + 1):
...             print(count, end='')
...         print()
... 
>>> print_figure()
12345
1234
123
12
1

もう 1 つのアプローチは、文字列'12345'とそのインデックスを使用することです。など'12345'[0]:'1'

def print_figure():
    for i in range(5, 0, -1):
        for count in range(i):
            print('12345'[count], end='')
        print()

ただし、スライスを使用して、ネストされたループを完全に取り除くことができます。

def print_figure():
    for i in range(5, 0, -1):
        print('12345'[:i])

'12345'[:3]文字列の最初の 3 文字、printing を返すため123です。

于 2013-11-08T18:49:49.093 に答える
0

より一般的なアプローチは、文字列を取得して、反復ごとに最後の項目を削除することです。

value = '12345'
while value:
    print value
    value = value[:-1]

12345利点は、任意の長さの任意の文字列と簡単に交換できることです。

于 2013-11-08T19:21:39.107 に答える