如何将变量一起添加到控制分隔的新变量中

时间:2015-09-17 13:50:53

标签: python

假设我已经声明了三个日期变量,如何将它们组合成一个新变量,我可以通过简单地打印新变量名称以正确的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语句中添加附加文本而不用/分隔。因此我需要一个可以调用的变量。

4 个答案:

答案 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和月份和日期的dsuppress 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,所以不要浪费你的时间。