2017-05-01 12 views
0

現在、私はこれらを3つの別々のメッセージに分解しています。 しかし、私はそれが単一の 'msg'である必要があります。これを単一の 'msg'変数にどのように組み合わせるのですか?

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)) 
+0

長さ3を文字列に追加します。 – Grimmy

答えて

1

daysHoursMinutesSecondsFromSecondsによって生成されたタプルをマージする必要があります。

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

また囲む()に注意してください。このなし

あなたはdaysHoursMinutesSecondsFromSecondsからサイズ返された値を含む3のタプルを送信している:私たちは+でタプルをマージすると考えられている

(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はあなたの友人であることに注意してください。

+0

これで解決しました。ありがとうございます! 私は明らかなことが分からないことを知っていました。 – dxrth

+1

良いもの。将来は問題があるときに '' print''を使用してください。それはあなたに非常に多くの時間を節約することができます。 – Grimmy

1

MSG =( '%dの日、%D時間、%dの分、%dのジャスティス2。のリリースまで' "%dの日、%D時間、%dの分、および%D13日の金曜日のリリースまで:ゲーム」'中つ国のリリースまで%dの日、%dの時間、%dの分、および%D秒。:戦争の影' )%(daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(今、injustice2))+ daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(今、fridaythe13th))+ daysHoursMinutesSecondsFromSeconds(dateDiffInSeconds(今、shadowofwar)))

私はあなたがのタプルのタプルを送信しているのでdaysHoursMinutesSecondsFromSeconds``は、タプルを返す ``推測している
関連する問題