3

00000 から 99999 までの数値を生成したい。

number=randint(0,99999)

もちろん、00023 の代わりに 23 を先頭にゼロを付けずに値を生成するだけです。 %05d の意味で常に 5 桁の値を生成するトリックはありますか、それとも python-string-trick を実行して埋める必要がありますか? len() < 5 の場合、先頭に 0 がありませんか?

読んで助けてくれてありがとう、

B

4

5 に答える 5

10

整数自体には先行ゼロがないため、python-string-trick を実行する必要があります。

number="%05d" % randint(0,99999)
于 2011-07-12T13:35:03.290 に答える
3

によって生成さrandintれる数値は整数です。整数は整数であり、先行ゼロなしで出力されます。

先行ゼロを持つことができる文字列表現が必要な場合は、次を試してください。

str(randint(0, 99999)).rjust(5, "0")
于 2011-07-12T13:35:39.847 に答える
0

または、str(randint(0, 99999)).zfill(5)文字列の書式設定 (20%) および str.rjust (1%) よりもわずかに優れたパフォーマンスを提供します。

于 2011-07-12T14:08:21.493 に答える
0

randint整数を生成します。これらは、固有の視覚的表現のない単純な数値です。先頭のゼロは、それらの数値 (および別の表現) から文字列を作成した場合にのみ表示されます。

したがって、文字列関数を使用して先頭にゼロを付ける必要があります (後でそれらの文字列を処理する必要があります)。たとえば、後で計算を行うことはできません。これらの文字列を作成するには、次のようなことができます

number = "%05d" % random.randint(0,99999)

要点は、たとえ見た目が似ていても、整数は文字列と同じではないということです。

>>> '12345' == 12345
False
于 2011-07-12T13:35:20.763 に答える
0

Pythonの場合、一連の数値を生成していますが、印刷/表示するときにのみ文字列に変換されるため、パディングを含めることができます。

numberフォーマットされた文字列として保存することもできます:

 number="%05d" % random.randint(0,9999)
于 2011-07-12T13:35:29.503 に答える