2014-12-24 69 views
-1
""" Combine both the date and the time with a space and separate the time digits with : and the date digits with /. The date must come before the time.""" 

from datetime import datetime 

now = datetime.now() 

print ('% mm/% dd/% yyyy' '% hh : % mm : ss') (now.month, now.day, now.year now.hour, now.minute, now.second) 

好吧,我正在做的是試圖完成一個教訓,我一直堅持從www.codecademy.com和我在Python v2.7.9腳本。我不斷得到相同的錯誤,如下所示:我在這個腳本中做了什麼不正確?

File "python", line 9 
    print ('% mm/% dd/% yyyy' '% hh : % mm : ss') (now.month, now.day, now.year now.hour, now.minute, now.second) 

SyntaxError: invalid syntax 

我一直無法弄清楚什麼是錯的,以及我如何解決它。如果有人能幫助我,我將不勝感激。

回答

1

問題出在括號組之間。

這是不好的語法格式字符串:

print ('% mm/% dd/% yyyy' '% hh : % mm : ss') (now.month, ... 

您需要爲舊式格式化新的風格的字符串格式化百分號或.format

你正在嘗試做的是一樣的東西:

print '%d/%d/%d' '%d : %d : %d'%(now.month, now.day, now.year now.hour, now.minute, now.second) 
# --- note the percent sign here -^- 

因爲你正在做一個codeacademy當然,我不會帶走的學習,但你可以就如何最好地格式的閱讀了關於Python string formatting to get a final solution你的字符串..

+0

它是否需要'now.year'和'now.hour'之間的逗號? – jmunsch

+0

是的,這是缺少的。我實際上已經錯過了看到一個論壇,它告訴我大多數人都有這個問題,這是缺少的逗號。謝謝你!我幾乎沒有在這裏檢查過幾天,所以我現在剛剛看到這個。再次感謝! –

0

不知道你想什麼與怪異print做的,但我想它是這樣的:

>>> print('%2s/%2s/%4s %2s : %2s : %2s' % (now.month, now.day, now.year, now.hour, now.minute, now.second)) 
12/23/2014 19 : 24 : 38 

但更好的方法是做格式化與datetime情況下,像now.strftime方法:

>>> print(now.strftime('%m/%d/%Y %H:%M:%S')) 
12/23/2014 19:24:38 

注意如何更簡潔,可讀性,這是。如果你堅持那些奇怪的額外空間,你總是可以將它們添加到你傳遞給strftime的格式字符串:-)

+0

謝謝,但我現在想通了!它實際上在now.year和now.hour之間錯過了一個逗號。 XD所以那是我犯的錯誤,我的朋友等着我弄清楚了,因爲他知道什麼是錯的。他只是不會告訴我哈哈。儘管感謝您的幫助!我會保留你所說的內容以備將來參考。 –