我有以下代码:
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
为什么输出的句子形式只输出第一个变量三次?即使我单独打印它们,也会打印各自的值。
答案 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')
输出:两个