使用输入的日期python
问题描述:
我想在python 3中做一个简单的代码,显示你输入月份和日期的那一天。这是代码:使用输入的日期python
from datetime import date
s = date(2016, 4, 29).weekday()
if s == 0:
print ("mon")
if s == 1:
print ("tue")
if s == 2:
print ("wed")
if s == 3:
print ("thurs")
if s == 4:
print ("fri")
if s == 5:
print ("sat")
if s == 6:
print ("sun")
上面的代码工作,但我试图做
from datetime import date
s = date(int(input())).weekday()
if s == 0:
print ("mon")
if s == 1:
print ("tue")
if s == 2:
print ("wed")
if s == 3:
print ("thurs")
if s == 4:
print ("fri")
if s == 5:
print ("sat")
if s == 6:
print ("sun")
,所以我可以让用户输入自己的一天,但它给了我下面的错误:
Traceback (most recent call last):
File "..\Playground\", line 2, in <module>
s = date(int(input())).weekday()
ValueError: invalid literal for int() with base 10: '2016,'
如果有帮助,我使用了输入2016,4,29。
答
你可以这样做:
from datetime import date
usr_date = [int(x) for x in input().split(",")]
d = date(usr_date[0], usr_date[1], usr_date[2]).weekday()
print (d)
datetime.date()
预计3点的整数,但input()
返回一个字符串。这意味着,我们必须:
- 分裂用逗号由
input()
返回的字符串来获得三个部分 - 将每个部分的整数
- 饲料这些部分
datetime.date()
这使得更有意义,如果你问我:
from datetime import datetime
d = datetime.strptime(input(), '%Y,%m,%d').weekday()
print(d)
datetime.strptime()
采用一个字符串作为输入,这很方便,因为input()
恰巧会返回一个字符串。这意味着分割和转换/转换不是必需的。您可以在datetime docs中找到strptime()
支持的所有不同日期格式。
的可能的复制[ValueError异常:无效字面对于int()与底座10: ''](http://*.com/questions/1841565/valueerror-invalid-literal-for-int-with-base-10 ) – jgr208
'2016,4,29'不是有效整数。 – fukanchik