我收到错误
必须是字符串,而不是int
这两行代码。
userInput = input("Please enter your birthday (mm/dd/yyyy)")
birthday = datetime.datetime.strptime(userInput, '%m/%d/%Y').date()
问题似乎是变量userInput
,但是从我在网上看到的示例和教程中,它应该可以正常工作。
如何解决此错误?
答案 0 :(得分:1)
更改
userInput = input("Please enter your birthday (mm/dd/yyyy)")
到
userInput = raw_input("Please enter your birthday (mm/dd/yyyy)")
因为您的原始输入正在计算日期,就像它正在进行除法一样。
编辑:我不使用Visual Studio,但为了以防万一,我就是这样想的。错误告诉我userInput返回的是int而不是字符串,所以我通过在Python控制台中运行userInput的代码来检查它。
我查看了userInput收集的内容:
print userInput
它返回0,所以我意识到它正在进行整数除法。
我用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()
在这种情况下应该像它一样工作。