假设我已经声明了三个日期变量,如何将它们组合成一个新变量,我可以通过简单地打印新变量名称以正确的1/2/03格式打印它们。
month = 1
day = 2
year = 03
date = month, day, year <<<<< What would this code have to be?
print(date)
我知道如果我单独调用所有三个变量,我可以在print语句中设置sep ='/'参数,但这意味着我不能在print语句中添加附加文本而不用/分隔。因此我需要一个可以调用的变量。
答案 0 :(得分:5)
.join()
方法可以做你想要的(假设输入是字符串):
>>> '/'.join((month, day, year))
1/2/03
与所有Python的formatting options一样,例如:
>>> '%s/%s/%s' % (month, day, year)
1/2/03
但是日期格式化(并且通常使用日期)很棘手,并且现有工具可以“正确”执行,即datetime
模块,请参阅date.strftime()
。
>>> date = datetime.date(2003, 1, 2)
>>> date.strftime('%m/%d/%y')
'01/02/03'
>>> date.strftime('%-m/%-d/%y')
'1/2/03'
请注意-
之前的m
和月份和日期的d
至suppress leading zeros。
答案 1 :(得分:1)
您可以使用join
方法。您还可以使用列表推导来格式化字符串,使它们的宽度均为2位数。
>>> '/'.join('%02d' % i for i in [month, day, year])
'01/02/03'
答案 2 :(得分:0)
您想了解str.format()
方法:
https://docs.python.org/3/library/stdtypes.html#str.format
或者如果您使用的是Python 2:
https://docs.python.org/2/library/stdtypes.html#str.format
join()
功能在这种情况下也适用,但从长远来看,了解str.format()
对您来说会更有用。
答案 3 :(得分:0)
正确的答案是:使用datetime
模块:
import datetime
month = 1
day = 2
year = 2003
date = datetime(year, month, day)
print(date)
print(date.strftime("%m/%d/%Y"))
# etc
尝试处理日期作为元组只是一个PITA,所以不要浪费你的时间。