首页 文章

显示前导零的数字

提问于
浏览
653

鉴于:

a = 1
b = 10
c = 100

如何为少于两位数的所有数字显示前导零?

那是,

01
10
100

16 回答

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

    结果是:

    01
    10
    100
    

    阅读文档中的more information about string formatting using % .

  • 0

    在Python 2中,您可以:

    print "%02d" % (1,)
    

    基本上 % 就像 printfsprintf .


    对于Python 3.可以通过以下方式实现相同的行为:

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

    你可以使用str.zfill

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

    打印:

    01
    10
    100
    
  • 116

    在Python 2.6和3.0中,您将使用format()字符串方法:

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

    或使用内置(对于单个数字):

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

    有关新的格式设置功能,请参阅PEP-3101文档 .

  • 4
    print('{:02}'.format(1))
    print('{:02}'.format(10))
    print('{:02}'.format(100))
    

    打印:

    01
    10
    100
    
  • 2

    或这个:

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

  • -1

    Python >= 3.6 中,您可以使用以下引入的新f字符串简洁地执行此操作:

    f'{val:02}'
    

    它打印名为 val 的变量,其fill值为 0width2 .

    对于您的具体示例,您可以在循环中很好地执行此操作:

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

    打印:

    01 
    10
    100
    

    有关f-strings的更多信息,请查看引入它们的PEP 498 .

  • 0

    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
    
  • 735

    或另一种解决方案

    "{:0>2}".format(number)
    
  • 88

    使用格式字符串 - http://docs.python.org/lib/typesseq-strings.html

    例如:

    python -c 'print "%(num)02d" % {"num":5}'
    
  • 31
    width = 5
    num = 3
    formatted = (width - len(str(num))) * "0" + str(num)
    print formatted
    
  • 657

    使用:

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

    或者使用 math 模块:

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

    我是这样做的:

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

    基本上zfill需要你想要添加的前导零的数量,所以很容易取出最大的数字,把它变成一个字符串并获得长度,如下所示:

    Python 3.6.5 (default, May 11 2018, 04:00:52) 
    [GCC 8.1.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> total = 100
    >>> print(str(1).zfill(len(str(total))))
    001
    >>> total = 1000
    >>> print(str(1).zfill(len(str(total))))
    0001
    >>> total = 10000
    >>> print(str(1).zfill(len(str(total))))
    00001
    >>>
    
  • 39

    根据你的提示,我让我的工作功能 . 谢谢 .

    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
    
  • 1
    s=1    
    s="%02d"%s    
    print(s)
    

    结果将是01

  • 0

    如果处理一位或两位数字:

    '0'+str(number)[-2:]'0{0}'.format(number)[-2:]

相关问题