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)
ответ
Вы можете использовать обработку исключений:
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
+1 Код совершенный, но мне нравится использовать цикл while, чтобы заставить пользователя ввести желаемый формат. Это хорошая практика? – Llopis
@ Llopis: Да, это хорошая практика. Используйте цикл while while, продолжайте просить, пока у вас не будет действительного ввода. Затем используйте 'break' для завершения цикла. –
Использование найти:
s = "29/01/2014"
if s.find("/") == -1:
print "No '/' here!"
else:
print "Found '/' in the string."
- 1. Как я могу убедиться, что пользователь только один раз регистрировался?
- 2. Как я могу убедиться, что popToRootViewControllerAnimated работает?
- 3. Как я могу убедиться, что кнопка отмечена?
- 4. Как убедиться, что узел запущен как пользователь?
- 5. Как убедиться, что пользователь вводит положительное число
- 6. , как убедиться, что пользователь вводит номер?
- 7. Как убедиться, что пользователь вводит число?
- 8. Как я могу убедиться, что сайт загружен НЕ из кеша
- 9. Как я могу убедиться, что мой кеш БД является текущим?
- 10. Как я могу проверить, что использует VisualTreeHelper?
- 11. Как я могу убедиться, что изображение не сохранено в галерее?
- 12. Что я могу сделать как пользователь OpenShift?
- 13. Как я могу убедиться, что мой scrollView прокручивает высоту KeyboardSpacer?
- 14. Как я могу убедиться, что какой-либо файл использует Visual Merge в Team File Service
- 15. Как я могу убедиться, что встроенный элемент управления браузером использует Internet Explorer 9?
- 16. Как я могу убедиться, что пользователь вводит правильный символ в C#?
- 17. Как я могу убедиться, что пользователь вводит число от 0 до 10?
- 18. Как я могу убедиться, что пользователь вводит целое число в c?
- 19. Как я могу убедиться, что пользователь может редактировать только свои записи?
- 20. Как я могу убедиться, что пользователь голосует только один раз в python django?
- 21. Как я могу убедиться, что пользователь вводит строку, содержащую только числа, операторы и букву Q?
- 22. Как я могу программным образом убедиться, что пользователь выбрал опцию с помощью AlertDialog.Builder?
- 23. Как я могу убедиться, что пользователь вводит только целочисленный тип и целое число, большее 0?
- 24. JavaScript --- Как я могу сделать правило, чтобы убедиться, что пользователь ввел значение между двумя конкретными номерами
- 25. Как я могу убедиться, что пользователь не может открыть более одного всплывающего окна в любое время?
- 26. jQuery - Как я могу убедиться, что пользователь вводит текст перед выполнением каких-либо других операций?
- 27. Как я могу убедиться, что мой уровень олицетворения Windows действителен?
- 28. Как я могу проверить, какое устройство iOS использует пользователь?
- 29. Как убедиться, что файл был сохранен на USB-накопителе, когда пользователь не использует «Безопасное удаление оборудования»?
- 30. Как я могу гарантировать, что NSOperationQueue использует только один поток?
использовать '' re' или datetime' модуль для проверки –
или просто 'если не«/ "в DMY: ...' ... – Torxed
Код должен быть переработан для аккуратного разделения шагов ввода, проверки и действия: 'elif' в первой строке сообщает мне, что вы делаете все шаги в одном ' if 'branch ... – Don