如何将这些组合成一个单一的“msg”变量?

2024-09-30 18:19:39 发布

您现在位置:Python中文网/ 问答频道 /正文

目前,我已经分为3个独立的'味精的。 但我需要它是一个单一的'味精'

    def dateDiffInSeconds(date1, date2):
      timedelta = date2 - date1
      return timedelta.days * 24 * 3600 + timedelta.seconds

    def daysHoursMinutesSecondsFromSeconds(seconds):
        minutes, seconds = divmod(seconds, 60)
        hours, minutes = divmod(minutes, 60)
        days, hours = divmod(hours, 24)
        return (days, hours, minutes, seconds)

    injustice2 = datetime.strptime('2017-05-15 23:01:00', '%Y-%m-%d %H:%M:%S')
    fridaythe13th = datetime.strptime('2017-05-25 23:01:00', '%Y-%m-%d %H:%M:%S')
    shadowofwar = datetime.strptime('2017-08-21 23:01:00', '%Y-%m-%d %H:%M:%S')

    now = datetime.now()

    msg = (
    '**%d** days, **%d** hours, **%d** minutes, and **%d** seconds until the release of **Injustice 2**.'
    ) % daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, injustice2))

    msg2 = (
    '**%d** days, **%d** hours, **%d** minutes, and **%d** seconds until the release of **Friday the 13th: The Game**.'
    ) % daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, fridaythe13th))

    msg3 = (
    '**%d** days, **%d** hours, **%d** minutes, and **%d** seconds until the release of **Middle-earth: Shadow of War**.'
    ) % daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, shadowofwar))

我试过这个,但是我得到“TypeError:没有足够的参数来格式化字符串”。我知道这是一个简单的问题,我还不太了解。任何帮助都将不胜感激

msg = (
'**%d** days, **%d** hours, **%d** minutes, and **%d** seconds until the release of **Injustice 2**.'
'**%d** days, **%d** hours, **%d** minutes, and **%d** seconds until the release of **Friday the 13th: The Game**.'
'**%d** days, **%d** hours, **%d** minutes, and **%d** seconds until the release of **Middle-earth: Shadow of War**.'
) % daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, injustice2)), daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, fridaythe13th)), daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, shadowofwar))

Tags: andofthedatetimereleasedaysnowtimedelta
2条回答

必须合并daysHoursMinutesSecondsFromSeconds生成的元组

% (daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, injustice2)) + daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, fridaythe13th)) + daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now, shadowofwar)))

还要注意包围的()

否则,您将发送一个大小为3的元组,其中包含从daysHoursMinutesSecondsFromSeconds返回的值:

(14, 20, 5, 6), 
(24, 20, 5, 6),
(112, 20, 5, 6)

这被认为是3个值,而不是12个值

当我们将元组与+合并时,它将是正确的:

(14, 20, 5, 6, 24, 20, 5, 6, 112, 20, 5, 6)

还要注意,当你遇到这样的问题时,print是你的朋友

消息=( “%d天,%d小时,%d分钟,%d秒,直到发布%2” “%d天,%d小时,%d分钟,%d秒,直到13日星期五:游戏发布” “%d天,%d小时,%d分钟,%d秒,直到《中土:战争的阴影》发行” )%(daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now,injustice2))+daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now,Friday13))+daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(now,shadowofwar)))

相关问题 更多 >