In Python, how to specify a format when converting int to string?

后端 未结 5 1898
终归单人心
终归单人心 2020-12-29 05:55

In Python, how do I specify a format when converting int to string?

More precisely, I want my format to add leading zeros to have a string with constant length. For

相关标签:
5条回答
  • 2020-12-29 06:32

    With python3 format and the new 3.6 f"" notation:

    >>> i = 5
    >>> "{:4n}".format(i)
    '   5'
    >>> "{:04n}".format(i)
    '0005'
    >>> f"{i:4n}"
    '   5'
    >>> f"{i:04n}" 
    '0005'
    
    0 讨论(0)
  • 2020-12-29 06:37

    "%04d" where the 4 is the constant length will do what you described.

    You can read about string formatting here.

    Update for Python 3:

    {:04d} is the equivalent for strings using the str.format method or format builtin function. See the format specification mini-language documentation.

    0 讨论(0)
  • 2020-12-29 06:39

    Try formatted string printing:

    print "%04d" % 1 Outputs 0001

    0 讨论(0)
  • 2020-12-29 06:41

    Use the percentage (%) operator:

    >>> number = 1
    >>> print("%04d") % number
    0001
    >>> number = 342
    >>> print("%04d") % number
    0342
    

    Documentation is over here

    The advantage in using % instead of zfill() is that you parse values into a string in a more legible way:

    >>> number = 99
    >>> print("My number is %04d to which I can add 1 and get %04d") % (number, number+1)
    My number is 0099 to which I can add 1 and get 0100
    
    0 讨论(0)
  • 2020-12-29 06:53

    You could use the zfill function of str class. Like so -

    >>> str(165).zfill(4)
    '0165'
    

    One could also do %04d etc. like the others have suggested. But I thought this is more pythonic way of doing this...

    0 讨论(0)
提交回复
热议问题