0
A
回答
5
剛剛嘗試使用time
模塊來解釋它,並抓住ValueError
當轉換失敗提出:
>>> time.strptime('08:30', '%H:%M')
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=8, tm_min=30, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)
>>> time.strptime('08:70', '%H:%M')
Traceback (most recent call last):
(...)
ValueError: unconverted data remains: 0
>>> time.strptime('0830', '%H:%M')
Traceback (most recent call last):
(...)
ValueError: time data '0830' does not match format '%H:%M'
這不檢查的唯一的事情是,你實際上指定正確的位數。檢查len(time_string) == 5
可能是否足夠簡單以檢查該問題。
編輯:靈感來自Kimvais的評論;以把它包裝成一個功能:
def is_hh_mm_time(time_string):
try:
time.strptime(time_string, '%H:%M')
except ValueError:
return False
return len(time_string) == 5
2
您可以使用time.strptime
:
>>> help(time.strptime)
Help on built-in function strptime in module time:
strptime(...)
strptime(string, format) -> struct_time
Parse a string to a time tuple according to a format specification.
See the library reference manual for formatting codes (same as strftime()).
要分析工作的時間字符串:如果你在一個時間字符串傳遞
>>> time.strptime('12:32', '%H:%M')
time.struct_time(tm_year=1900, tm_mon=1, tm_mday=1, tm_hour=12, tm_min=32, tm_sec=0, tm_wday=0, tm_yday=1, tm_isdst=-1)
無效,您將收到錯誤:
>>> time.strptime('32:32', '%H:%M')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\_strptime.py", line 454, in _strptime_time
return _strptime(data_string, format)[0]
File "C:\Python27\lib\_strptime.py", line 325, in _strptime
(data_string, format))
ValueError: time data '32:32' does not match format '%H:%M'
所以......你的函數看起來是這樣的:
def is_hh_mm(t):
try:
time.strptime(t, '%H:%M')
except:
return False
else:
return True
+0
謝謝你的解釋:) – alwbtc 2012-02-08 09:33:30
相關問題
- 1. 判斷一個字符串是否是另一個子字符
- 2. 如何判斷某個字母是否在字符串中 - javascript
- 3. 如何判斷一個字符串是否是網址?
- 4. 在shell中,如何判斷一個字符串是否以路徑名開頭?
- 5. 如何檢查python字符串以查看它是否爲HH:MM時間格式?
- 6. 在Perl中,如何判斷字符串是否是數字?
- 7. 我如何判斷一個字符串是否只包含字母和空格
- 8. 如何判斷一個C++模板類型是否是C風格字符串
- 9. 如何判斷未知數字是否在字符串中?
- 10. 如何判斷一個字符串是否包含Guid作爲子字符串?
- 11. python unicode:如何判斷一個字符串是否需要解碼爲utf-8?
- 12. 如何判斷正則表達式是否匹配字符串?
- 13. 如何判斷boost :: split_iterator是否在字符串中間開始?
- 14. Python:如何判斷一個字符串是否代表一個語句或一個表達式?
- 15. unix:如何判斷一個字符串是否與正則表達式匹配
- 16. 如何判斷字符串中是否有數字?
- 17. 如何判斷一個字符串是否未在bash shell腳本中定義?
- 18. 如何判斷一個字符串是否代表一個整數?
- 19. 如何判斷一個字符串是否在兩個字符之間沒有正則表達式?
- 20. 如何判斷字符串是否以R中的換行符(EOL)結尾?
- 21. 是否有任何算法來判斷一個字符串是否有意義
- 22. 如何判斷pick()的結果是否是字符串
- 23. 如何判斷某個字符串之前的任何字符是否匹配?
- 24. 如何判斷一個String是否真的是Java中的一個字符?
- 25. 如何判斷一個字符是否對html有效?
- 26. PHP如何判斷一個字符串是否包含某個值
- 27. 如何判斷字符串在元值中是空還是空?
- 28. 如何判斷Request.Form中的值是否是一個數字? (C#)
- 29. 是否可以判斷一個函數是否處於嚴格模式?
- 30. 如何判斷一個字符串是否使用不同的語言。 (非ASCII)
+1不表明正則表達式 – Kimvais 2012-02-08 09:14:02
'除了ValueError異常:返回FALSE' – Kimvais 2012-02-08 09:15:40
謝謝,它幫助:) – alwbtc 2012-02-08 09:33:08