convert number to string in python

后端 未结 5 1529
你的背包
你的背包 2021-01-26 17:40

I meet a problem about converting number to string.

I want to get a string \"0100\" from str(0100), but what I got is \"64\". Does any way I can do to get a string \"010

相关标签:
5条回答
  • 2021-01-26 17:54

    You could just concatenate both strings so if you want 0100

    res = str(0) + str(100)
    

    that way res = '0100'

    0 讨论(0)
  • 2021-01-26 17:57

    The integer should be written as 100, not 0100.

    You can format the string with leading zeros like this:

    >>> "%04d" % 100
    '0100'
    
    0 讨论(0)
  • 2021-01-26 17:59

    Your first issue is that the literal "0100", because it begins with a digit 0, is interpreted in octal instead of decimal. By contrast, str(100) returns "100" as expected.

    Secondly, it sounds like you want to zero-fill your numbers to a fixed width, which you can do with the zfill method on strings. For example, str(100).zfill(4) returns "0100".

    0 讨论(0)
  • 2021-01-26 18:01

    In Python2, a leading 0 on a numeric literal signifies that it is an octal number. This is why 0100 == 64. This also means that 0800 and 0900 are syntax errors

    It's a funny thing that's caught out many people at one time or another.

    In Python3, 0100 is a syntax error, you must use the 0o prefix if you need to write a octal literal. eg. 0o100 == 64

    0 讨论(0)
  • 2021-01-26 18:17

    Not sure if I understood the question... maybe you're looking for this:

    '%04o' % 0100  # 0100
    
    0 讨论(0)
提交回复
热议问题