2017-05-01 8 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 개분 및초 13 일의 금요일의 출시까지 % d 개 :. 게임 ','% d 개일, % d 개시간, % d 개분 및 % d의중간계의 출시 때까지. 전쟁의 그림자' ) % (daysHoursMinutesSecondsFromSeconds (dateDiffInSeconds (지금 , injustice2)) + daysHoursMinutesSecondsFromSeconds (dateDiffInSeconds (지금, fridaythe13th)) + daysHoursMinutesSecondsFromSeconds (dateDiffInSeconds (지금, shadowofwar)))

난 당신의 튜플의 튜플을 보낼 수 있도록 daysHoursMinutesSecondsFromSeconds``는 튜플을 반환``같은데요