elif search.lower() == "m":
DMY = input("please enter your date of birth you are looking for (date/month/year) : ")
DMY = DMY.split("/")
DMY = DMY[1]
for line in open("datafile.txt"):
if DMY in line:
print(line)
0
A
回答
6
您可以使用異常處理:
DMY = input("please enter your date of birth you are looking for (date/month/year) :` ")
DMY = DMY.split("/", 2)
try:
DMY = int(DMY[1])
except (IndexError, ValueError):
# User did not use (enough) slashes or the middle value was not an integer
print("Oops, did you put in an actual date?")
或者你可以嘗試和解析日期:
import datetime
DMY = input("please enter your date of birth you are looking for (date/month/year) :` ")
try:
DMY = datetime.datetime.strptime(DMY, '%d/%m/%Y').date()
except ValueError:
# User entered something that doesn't fit the pattern dd/mm/yyyy
print("Oops, did you put in an actual date?")
後者的優點是,你現在有一個實際datetime.date()
對象,它不不僅僅是檢查用戶輸入的斜線和整數,它還驗證輸入的值實際上可以解釋爲日期。 30/02/4321
不會解析,因爲沒有月30日,甚至在今年4321
+0
+1代碼是完美的,但我喜歡用while循環強制用戶輸入所需的格式。這是一個很好的做法? – Llopis
+1
@Llopis:是的,這是很好的做法。使用'while True'循環,繼續詢問,直到您有有效的輸入。然後使用'break'結束循環。 –
1
使用發現:
s = "29/01/2014"
if s.find("/") == -1:
print "No '/' here!"
else:
print "Found '/' in the string."
相關問題
- 1. 如何確保使用ajax?
- 2. 如何確保用戶在組中
- 3. 如何確保唯一用戶註冊
- 4. 如何確保用戶剛剛登錄?
- 5. 確保允許Apache用戶使用shell
- 6. 如何確保使用正確的DateTime?
- 7. 用戶模型驗證失敗,如何確保使用「舊」值
- 8. 如何驗證密碼並確保用戶名未被使用?
- 9. 如何確保用戶界面響應使用BackgroundWorker
- 10. 如何確保在rails中使用正確的帳戶保存模型?
- 11. 如何結束用戶會話並確保用戶已註銷?
- 12. 如何保證用戶使用bash
- 13. 即使用戶離開頁面,如何確保Google Analytics加載?
- 14. 確保用戶登錄
- 15. 如何確保用戶輸入的格式是正確的python
- 16. 如何確保使用GPU的咖啡?
- 17. 如何確保我不使用Google Analytics
- 18. 我如何確保PHP使用TBinaryProtocolAccelerated
- 19. 如何使用ShellExecuteEx確保exe啓動
- 20. 如何確保ajax使用.load
- 21. 使用flask-login確保單個用戶每個帳戶
- 22. 如何使用requests_mock來確保調用正確的會話?
- 23. 如何確保在用戶退出時調用onDestroy方法
- 24. 確保用戶帳戶的microService彈簧
- 25. 如何確保用戶只能使用Laravel刪除自己的記錄
- 26. 即使用戶被刪除,我該如何保留用戶?
- 27. 如何使用Qwebview保存用戶帳戶和密碼
- 28. 如何確定用戶CKAccountStatus
- 29. 如何安全地確定用戶在使用客戶會話
- 30. 使用POST註冊用戶 - 如何正確使用ResponseEntity?
使用're'或'進行驗證 –
或者乾脆datetime'模塊'如果不是「/ 「在DMY中:......'...... – Torxed
代碼應該被重新設計以整齊地分離輸入,驗證和操作的步驟:第一行的'elif'告訴我,你在一個'如果'分支... – Don