1

私はループ内でシミュレートされたロボットを画面上で動かさなければならない割り当てを行っています - 私はその部分を下に持っていますが、ループの間に、各動きで覆われた面積のパーセンテージも印刷する必要があります - それは私の問題。

少しグーグルで検索したところ、同じ問題を抱えている人を見つけましたが、適切に行っているかどうかはわかりません.

このコードが提供されました:

percent_complete = 0

for i in range(5):
    percent_complete += 20
    print('{}% complete'.format(percent_complete))

ただし、エラーの後、さらにグーグルすると、特定のバージョンでのみ機能することが明らかになりました

だから私はこのコードを使用しました:

percent_complete = 0

for i in range(5):
        percent_complete += 20
        print '% complete' % (percent_complete)

少なくとも、コードを実行するようになりましたが、印刷時の出力は次のようになります。

Here we go!
hello
omplete
hello
(omplete
hello
<omplete
hello
Pomplete
hello
domplete

これの原因は何ですか?コードの1つを編集する必要があったため、他の部分も同様に編集する必要があると思いますが、何をする必要があるかわかりません。

4

3 に答える 3

5
for i in range(5):
    percent_complete += 20
    print '%d complete' % (percent_complete)

指定子がありませんでしたd

于 2012-05-31T06:38:19.190 に答える
2

最初のバージョンは、関数として使用するため、Python3でのみprint機能します。あなたはおそらく次のものを探しています:

percent_complete = 0
for i in xrange(5):
    percent_complete += 20
    print '{0} complete'.format(percent_complete)

他のコードは、数値を文字列として表示するため、意図したとおりに機能しません。必要なのは、数値が最初に文字列に適切に変換されてから、文字列に表示されることです。関数formatはあなたのためにそれを行います。

percent_completeまた、それが数値であることを明示的に指定するAnsariのアプローチを使用することもできます(d指定子を使用)。

于 2012-05-31T06:38:27.000 に答える
1

上記の回答に追加/修正するには:

最初の例が機能しなかった理由は、 print が関数ではないためではなく、引数指定子を省略したためです。試してみてくださいprint('{0}% complete'.format(percent_complete))。括弧内の 0 が重要な要素です。

于 2012-05-31T06:55:28.620 に答える