在Visual Studio 2015上输入Date Python时出错

时间:2015-09-25 09:55:45

标签: python visual-studio visual-studio-2015

我收到错误

  

必须是字符串,而不是int

这两行代码。

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

问题似乎是变量userInput,但是从我在网上看到的示例和教程中,它应该可以正常工作。

Screenschot

如何解决此错误?

3 个答案:

答案 0 :(得分:1)

更改

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

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

因为您的原始输入正在计算日期,就像它正在进行除法一样。

编辑:我不使用Visual Studio,但为了以防万一,我就是这样想的。

  1. 错误告诉我userInput返回的是int而不是字符串,所以我通过在Python控制台中运行userInput的代码来检查它。

  2. 我查看了userInput收集的内容:

    print userInput

  3. 它返回0,所以我意识到它正在进行整数除法。

  4. 我用google搜索“python string user input”,它返回了StackOverflow的链接,这是我得到答案的地方。

答案 1 :(得分:1)

input将用户的输入作为代码处理。因此,如果您输入say 25/09/2015,则Python会将其处理为25乘以9然后到2015年。您可以print userInput看到它是0。 您必须在引号中输入日期(作为字符串)或使用raw_input

似乎导致问题的BTW打印变量是一种很好的调试方法。

答案 2 :(得分:0)

Python 2.7和Python 3版本似乎存在一些不一致之处。我使用的是Python 2.7,而我所使用的教程是使用Python 3+,其中input()在这种情况下应该像它一样工作。