How to retain leading zeros of int variables?

前端 未结 3 822
情书的邮戳
情书的邮戳 2020-12-03 18:09

Below is a section of code which is part of a functional decryption and encryption program.

while checkvar < maxvar: # is set to < as maxvar is 1 to hig         


        
相关标签:
3条回答
  • 2020-12-03 18:40

    I was getting date strings like hhmmss coming across the serial line from my Arduino.

    so suppose I got s = "122041"; this would be 12:20:41, however 9am would be 090000.

    The statement print "%d" % (s) provokes a run time error because the 9 is not an octal number and is hence an illegal character.

    To fix this problem:

    print "%06d" % (int(s))
    

    Hope that helps

    0 讨论(0)
  • 2020-12-03 18:46

    Though the comments above are true regarding 1, 01, and 001, are all the same as an int, it can be very helpful in temporal modeling, or sequential movie making to maintain the leading zeros. I do it often to ensure movie clips are in proper order. The easy way to do that is using zfill() to ensure the str version of the number has at least the number of characters you tell it, and does so by filling in the left-side of the string "number" with zeros.

    >>> x = int(1)    
    >>> NewStringVariable = str(x).zfill(3)    
    >>> print NewStringVariable    
    001    
    >>> NewStringVariable = str(x).zfill(5)    
    >>> print NewStringVariable    
    00001
    
    0 讨论(0)
  • 2020-12-03 18:54

    The concept of leading zeros is a display concept, not a numerical one. You can put an infinite number of leading zeros on a number without changing its value. Since it's not a numeric concept, it's not stored with the number.

    You have to decide how many zeros you want when you convert the number to a string. You could keep that number separately if you want.

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