00000 から 99999 までの数値を生成したい。
と
number=randint(0,99999)
もちろん、00023 の代わりに 23 を先頭にゼロを付けずに値を生成するだけです。 %05d の意味で常に 5 桁の値を生成するトリックはありますか、それとも python-string-trick を実行して埋める必要がありますか? len() < 5 の場合、先頭に 0 がありませんか?
読んで助けてくれてありがとう、
B
整数自体には先行ゼロがないため、python-string-trick を実行する必要があります。
number="%05d" % randint(0,99999)
によって生成さrandint
れる数値は整数です。整数は整数であり、先行ゼロなしで出力されます。
先行ゼロを持つことができる文字列表現が必要な場合は、次を試してください。
str(randint(0, 99999)).rjust(5, "0")
または、str(randint(0, 99999)).zfill(5)
文字列の書式設定 (20%) および str.rjust (1%) よりもわずかに優れたパフォーマンスを提供します。
randint
整数を生成します。これらは、固有の視覚的表現のない単純な数値です。先頭のゼロは、それらの数値 (および別の表現) から文字列を作成した場合にのみ表示されます。
したがって、文字列関数を使用して先頭にゼロを付ける必要があります (後でそれらの文字列を処理する必要があります)。たとえば、後で計算を行うことはできません。これらの文字列を作成するには、次のようなことができます
number = "%05d" % random.randint(0,99999)
要点は、たとえ見た目が似ていても、整数は文字列と同じではないということです。
>>> '12345' == 12345
False
Pythonの場合、一連の数値を生成していますが、印刷/表示するときにのみ文字列に変換されるため、パディングを含めることができます。
number
フォーマットされた文字列として保存することもできます:
number="%05d" % random.randint(0,9999)