【问题标题】:Python Str to Int - Very Simple but tricky [duplicate]Python Str 到 Int - 非常简单但很棘手 [重复]
【发布时间】:2017-01-03 08:58:01
【问题描述】:

我有一个小问题,在我的 GUI 应用程序中。只需要显示字符串。我必须执行以下逻辑。我有一个字符串'a',它是数字。是五位数。我必须将它增加 '1' 并再次将它放在我的 GUI 上 - 作为“00002”这是代码。

a = '00001'

b = int(a) + 1

print str(b)

预期结果:“00002” - 我得到“2” 我必须使这项工作适用于“00001”或“00043”或“00235”或“03356”或“46579”-我想说-它必须适用于“a”中的任意位数

【问题讨论】:

    标签: python string python-2.7 int string-formatting


    【解决方案1】:
    a = '00001'
    
    b = str(int(a) + 1).zfill(5)
    
    >>> b
    '00002'
    

    或者干脆……

    a = 1
    a += 1
    print(str(a).zfill(5))
    

    【讨论】:

      【解决方案2】:

      结果与您预期的不一样,因为int() 函数忽略了前导零。前导零不存储在整数中。

      诀窍是什么

      a = '00001'
      b = int(a) + 1
      print str(b).zfill(5)
      

      这里的5 表示该号码必须为5 位数字。 zfill(number) 所做的是在字符串的开头添加零,直到字符串的长度为 number 个字符(在本例中为数字)。

      希望对您有所帮助。 ?

      【讨论】:

        【解决方案3】:

        有多种方法可以实现:

        方法一:使用format

        >>> format(2, '06d')
        '000002'
        

        方法二:使用zfill

        >>> str(2).zfill(5) 
        '00002'
        

        方法3:使用%

        >>> "%05d" % (2,)
        '00002'
        

        选择最适合你的 :)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-08-26
          • 1970-01-01
          • 2021-09-13
          • 2020-10-26
          • 2016-08-08
          • 2019-09-18
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多