Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中,如何将一位数字转换为两位数字字符串?_Python_String_Numbers_Digits - Fatal编程技术网

在python中,如何将一位数字转换为两位数字字符串?

在python中,如何将一位数字转换为两位数字字符串?,python,string,numbers,digits,Python,String,Numbers,Digits,所以说我有 a=5 我想将其打印为字符串“05”在python 3.6中,引入了or“格式化字符串文字”机制 f"{a:02}" 与下面的.format格式等效,但更简洁一点 Python3 3.6之前的版本更倾向于使用更详细的格式系统: "{0:0=2d}".format(a) 你可以在这里走捷径,上面可能是最冗长的变体。完整文档可在以下位置获得: 打印“%02d”%a是python 2的变体 python2的相关文档链接为: 阅读更多 “%”运

所以说我有

a=5

我想将其打印为字符串“05”

在python 3.6中,引入了or“格式化字符串文字”机制

f"{a:02}"
与下面的.format格式等效,但更简洁一点


Python3 3.6之前的版本更倾向于使用更详细的格式系统:

"{0:0=2d}".format(a)
你可以在这里走捷径,上面可能是最冗长的变体。完整文档可在以下位置获得:


打印“%02d”%a
是python 2的变体

python2的相关文档链接为:

阅读更多

“%”运算符与左侧的字符串一起使用时称为运算符<代码>'%d'是打印整数的格式代码(如果值不是数字,则会出现类型错误)。使用
'%2d
可以指定长度,
'%02d'
可以用于将填充字符设置为0,而不是默认的空格

>>> a=["%02d" % x for x in range(24)]
>>> a
['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']
>>> 
在Python3中就是这么简单,您可以:

print("%02d" % a)

与Mohommad的答案不同:

str_years = [x for x in range(24)]
#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]

#Or, if you're starting with ints:
int_years = [int(x) for x in str_years]

#Formatted here
form_years = ["%02d" % x for x in int_years]

print(form_years)
#['00', '01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23']


如果您是一名分析师,而不是一名全职员工,这可能更直观:

[(str('00000')+str(i))[-5:]
把它分解,你:

  • 首先创建一个重复0或X的列表,在本例中为100长,即arange(100)

  • 将您想要的数字添加到字符串中,在本例中为数字0-99,即“i”

  • 仅保留右侧的5位数字,即用于子集设置的“[-5:]”

  • 输出为编号列表,均为5位数字


    • 这是一个愚蠢的解决方案,但我在上面的其他解决方案中遇到了类型错误。因此,如果其他一切都失败了,yolo:

      images3digit = []
      
      for i in images:
              if len(i)==1:
                  i = '00'+i
                  images3digit.append(i)
              elif len(i)==2:
                  i = '0'+i
                  images3digit.append(i)
              elif len(i)==3:
                  images3digit.append(i)
      

      根据@user225312所说的,您可以使用.zfill()将填充添加到转换为字符串的数字中

      我的方法是将数字保留为数字,直到您希望将其转换为字符串:

      >>> num = 11
      >>> padding = 3
      >>> print(str(num).zfill(padding))
      011
      

      在Python3.6中,可以使用所谓的f字符串。在我看来,这种方法更容易阅读

      >>> f'{a:02d}'
      '05'
      

      请阅读教程。特别是在字符串格式方面。阅读后,请更新您的问题。新的Python3格式也在2.6中提供,2.7/3允许您对位置参数更加简洁。简单地说,
      “{:02d}”。格式(a)
      也可以使用!!如果需要4位数字,只需将2替换为4
      “{:04d}”。格式(a)
      。这是给蟒蛇3的。谢谢!这正是我想要的
      images3digit = []
      
      for i in images:
              if len(i)==1:
                  i = '00'+i
                  images3digit.append(i)
              elif len(i)==2:
                  i = '0'+i
                  images3digit.append(i)
              elif len(i)==3:
                  images3digit.append(i)
      
      >>> num = 11
      >>> padding = 3
      >>> print(str(num).zfill(padding))
      011
      
      >>> f'{a:02d}'
      '05'