2015-09-25 4 views
0

Я получаю сообщение об ошибкеОшибка при вводе даты Python на Visual Studio 2015

должна быть строка, не Int

для этих двух строк кода.

userInput = input("Please enter your birthday (mm/dd/yyyy)") 
birthday = datetime.datetime.strptime(userInput, '%m/%d/%Y').date() 

Проблема, как представляется, с переменным userInput, но из примеров и учебников я видел в Интернете, он должен работать.

Screenschot

Как исправить эту ошибку?

ответ

1

Изменить

userInput = input("Please enter your birthday (mm/dd/yyyy)") 

в

userInput = raw_input("Please enter your birthday (mm/dd/yyyy)") 

, поскольку исходный вход расчета даты, как будто она проводит разделение.

EDIT: Я не использую Visual Studio, но на всякий случай, вот как я это понял.

  1. ошибка говорит мне, что UserInput возвращается в Int вместо строки, так что я проверил это, запустив код UserInput в консоли Python.

  2. Я проверил, что UserInput собрали:

    печати UserInput

  3. Он вернулся 0, так что я понял, что это делает целое подразделение.

  4. I googled «пользовательский ввод строки python», и он вернул ссылку на StackOverflow, где я получил ответ.

1

input обрабатывает вход пользователя как код. Поэтому, если вы входите, скажем, 25/09/2015, Python обрабатывает его как деление 25 на 9, а затем на 2015 год. Вы можете print userInput и посмотреть, что это 0. Вы должны ввести дату в кавычки (как строку) или использовать raw_input.

Квантовые переменные, которые, как представляется, вызывают проблемы, являются хорошим методом отладки.

0

Возможно, существуют некоторые несоответствия в версиях Python 2.7 и Python 3. Я использовал Python 2.7, в то время как учебники, которые я использовал, использовали Python 3+, где input() работает так, как в этом случае.

Смежные вопросы