web-dev-qa-db-ja.com

先行ゼロ付きの表示番号

与えられた:

a = 1
b = 10
c = 100

2桁未満​​のすべての数字に先行ゼロを表示する方法を教えてください。

あれは、

01
10
100
728
ashchristopher

Python 2では、次のことができます。

print "%02d" % (1,)

基本的にprintfまたはsprintfのようなものです。


Python 3. +では、同じ振る舞いを次のようにして達成することができます。

print("{:02d}".format(1))

Python 3.6以降の場合、f文字列を使用して同じ動作を実現できます。

print(f"{1:02d}")
774
Jack M.

str.zfill を使用できます。

print str(1).zfill(2) 
print str(10).zfill(2) 
print str(100).zfill(2) 

プリント:

01
10
100
790
Datageek

Python 2.6以降および3.0以降では、 format() stringメソッドを使用します。

for i in (1, 10, 100):
    print('{num:02d}'.format(num=i))

または(1つの数値に対して)組み込みを使用します。

print(format(i, '02d'))

新しいフォーマット機能については PEP-3101 のドキュメントを参照してください。

350
Ber
print('{:02}'.format(1))
print('{:02}'.format(10))
print('{:02}'.format(100))

プリント:

01
10
100
118
Kresimir

またはこれ:

print '{0:02d}'.format(1)

88
ajd

Python> = 3.6 では、以下を使用して導入された新しいf文字列を使用してこれを簡潔に行うことができます。

f'{val:02}'

これは、 val0および fill _ 2で、widthという名前の変数を出力します。

あなたの特定の例のために、あなたはループでうまくこれをすることができます:

a, b, c = 1, 10, 100
for val in [a, b, c]:
    print(f'{val:02}')

どの印刷:

01 
10
100

F文字列の詳細については、それらが導入された場所の PEP 498 をご覧ください。

x = [1, 10, 100]
for i in x:
    print '%02d' % i

結果は次のとおりです。

01
10
100

ドキュメントの% を使った文字列のフォーマットに関する詳細情報を読んでください。

50
nosklo

これを行うPythonicの方法:

str(number).rjust(string_width, fill_char)

このように、元の文字列は、その長さがstring_widthより大きい場合、変更されずに返されます。例:

a = [1, 10, 100]
for num in a:
    print str(num).rjust(2, '0')

結果:

01
10
100
42
ZuLu

または別の解決策。

"{:0>2}".format(number)
32
WinterChilly

フォーマット文字列を使う - http://docs.python.org/lib/typesseq-strings.html

例えば:

python -c 'print "%(num)02d" % {"num":5}'
5
Airsource Ltd
width = 5
num = 3
formatted = (width - len(str(num))) * "0" + str(num)
print formatted
2
nvd

これが私のやり方です。

str(1).zfill(len(str(total)))

基本的にzfillは追加したい先行ゼロの数を取るので、最大の数をとり、それを文字列に変換して長さを取得するのは簡単です。

 Python 3.6.5(デフォルト、2018年5月11日、04:00:52)
 [GCC 8.1.0] linux上
「help」、「copyright」、「」と入力します。より多くの情報のための「または」免許証。[.____。>>>合計= 100 [.____。>>> print(str(1).zfill(len(str(total))))[.____ .001 001 
 >>>合計= 1000 
 >>>印刷(str(1).zfill(len(str(total))))
 0001 
 ] >>>合計= 10000 
 >>>印刷(str(1).zfill(len(str(合計))))[.____。00001 
 >>> 
1
Roberto

つかいます:

'00'[len(str(i)):] + str(i)

あるいはmathモジュールでは:

import math
'00'[math.ceil(math.log(i, 10)):] + str(i)
1
Linekio

df ['Col1'] = df ['Col1']。apply(lambda x: '{0:0> 5}'。format(x))(5は総桁数です)

私はこのリンクを使用しました: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/

!/ usr/bin/env python3

著作権2009-2017 BHG http://bw.org/ /

x = 5

while (x <= 15):
    a =  str("{:04}".format(x))
    print(a)
    x = x + 1;

画像と同じコード

0
Rupert Russell
s=1    
s="%02d"%s    
print(s)

結果は01になります

0
nidheesh

あなたのヒントに基づいて、私は私の作業機能をさせてください。ありがとうございました。

def number2binlist(number, leading = 8):
    #Convert Binary to 0/1 list array with leading zeros, default 8
    bin2dec = int(str(bin(number))[2:])
    theformat = "{:0"+str(leading)+"d}"
    dec2str = list(theformat.format(bin2dec))
    output = [int(z) for z in dec2str]
    output.reverse()
    return output
0