如何将变量一起添加到您控制分离的新变量中
Posted
技术标签:
【中文标题】如何将变量一起添加到您控制分离的新变量中【英文标题】:How to add variables together into a new variable where you control the separation 【发布时间】:2015-12-14 10:09:46 【问题描述】:假设我已经声明了三个变量,它们是一个日期,我如何将它们组合成一个新变量,我可以通过简单地打印新变量名称以正确的 1/2/03 格式打印它们。
month = 1
day = 2
year = 03
date = month, day, year <<<<< What would this code have to be?
print(date)
我知道如果我单独调用所有三个变量,我可以在打印语句中设置 sep='/' 参数,但这意味着我不能在打印语句中添加附加文本,除非它也被 / 分隔。因此我需要一个可以调用的变量。
【问题讨论】:
请注意,您的月、日和年变量应该是字符串(例如year = '03'
;否则前导零将被删除。
欢迎来到 Stack Overflow!感谢您提出了一个很好的问题:您向我们展示了您迄今为止所做的尝试,并解释了您想要做什么。当您在这里时,我建议您使用tour of the site。并且不要忘记“接受”您认为最有用的答案,以便以后发现您的问题的其他人知道哪个答案解决了您的问题。要接受答案,请单击答案分数下方的复选标记,复选标记将变为绿色。 (请注意,每个问题您只能接受一个答案。)
根据ISO 8601 1/2/03
不是正确的格式。 ;-)
@dimo414 - 实际上,最好使用整数来表示月、日和年,因为您无法对字符串进行数学运算。当您准备好打印它们时,您应该只将它们转换为字符串(使用 str.format()
之类的东西)。
如果您打算进行数学运算,您绝对不应将日期视为整数。使用适当的日期库进行日期算术。如果 OP 只想打印带有前导零的数值,则应使用字符串。
【参考方案1】:
.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。
【讨论】:
将他指向datetime
的好主意。我认为他也应该关注str.format
,因为这是每个 Python 初学者都应该了解的内容。
你的 .join
方法似乎比我的更神奇,因为我的方法是抱怨“预期的字符串,找到 int”(用 '/'.join(map(str,(month,day,year)))
简单修复)
您不能使用整数来表示带有前导零的字符串 - 请参阅我对这个问题的评论。【参考方案2】:
正确的答案是:使用datetime
模块:
import datetime
month = 1
day = 2
year = 2003
date = datetime(year, month, day)
print(date)
print(date.strftime("%m/%d/%Y"))
# etc
尝试将日期处理为元组只是一个 PITA,所以不要浪费你的时间。
【讨论】:
【参考方案3】:您想了解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()
对您会更有用。
【讨论】:
【参考方案4】:您可以使用join
方法。您还可以使用列表推导来格式化字符串,使它们的宽度均为 2 位。
>>> '/'.join('%02d' % i for i in [month, day, year])
'01/02/03'
【讨论】:
以上是关于如何将变量一起添加到您控制分离的新变量中的主要内容,如果未能解决你的问题,请参考以下文章