第一个变量替换其他

时间:2017-10-06 15:14:29

标签: python-3.6

我有以下代码:

from a3_functions import convert_date

date=int(input('Please enter the date in the format: ddmmyyyy'))

days, months, years=convert_date(date)

print("{0:02d}/{0:02d}/{0:04d}".format(days, months, years))

print(days)

print(months)

print(years)

但是当我运行它时输出以下内容:

Please enter the date in the format: ddmmyyyy03061314
03/03/0003
3
6
1314

为什么输出的句子形式只输出第一个变量三次?即使我单独打印它们,也会打印各自的值。

1 个答案:

答案 0 :(得分:0)

您的格式字符串使用位置索引(全部为0,因此占用第一个元素)。

请尝试使用此格式字符串(我基本上只删除了0前面的所有:):

>>> print("{:02d}/{:02d}/{:04d}".format(days, months, years))
03/06/1314

如果你想保留位置参数,你可以像这样增加数字:

>>> print("{0:02d}/{1:02d}/{2:04d}".format(days, months, years))
03/06/1314

或者,您也可以将位置命名为使用更易读的格式字符串:

>>> print("{day:02d}/{month:02d}/{year:04d}".format(day=days, month=months, year=years))
03/06/1314

PyFormat对新格式字符串有很好的概述:

  

使用新样式格式化是可能的(甚至在Python 2.6中也是如此)   强制性)给占位符一个明确的位置索引。

     

这允许重新排列显示顺序而不改变   参数。

     

此操作不适用于旧式格式。

     

新:'{1} {0}'。format('one','two')

     

输出:两个