我已经创建了一个脚本来计算星期几,但是我必须使用太多的if子句。有没有办法在不使用太多ifs的情况下做到这一点。
实际链接
http://pc2solution.blogspot.in/2014/09/python-calculate-day-of-week-for-any.html
脚本:
import datetime
year = raw_input('Enter year in format YYYY... ')
mon = raw_input('Enter month in format MM ')
date = raw_input('Enter date in format ')
a = datetime.date(int(year), int(mon), int(date)).weekday() # 3=Thursday
if a == 0:
print 'Its Monday'
if a == 1:
print 'Its Tuesday'
if a == 2:
print 'Its Wednesday'
if a == 3:
print 'Its Thursday'
if a == 4:
print 'Its Friday'
if a == 5:
print 'Its Saturday'
if a == 6:
print 'Its Sunday'
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以使用数字键入字典,并将日期名称作为值,然后将其编入索引以获得所需内容。像这样的东西
d = { 0 : "Monday",
1 : "Tuesday",
.
.
.
}
print "It's {}".format(d[a])
答案 2 :(得分:1)
无词典方式:
>>> import datetime
>>> a = datetime.date(2014,9,2)
>>> datetime.datetime.strftime(a, '%A')
'Tuesday'
答案 3 :(得分:0)
添加一个字典,其键将是日期索引,其值为您要显示的字符串
verbose_dict = {0: "Its Monday", 1 : "Its Tuesday", 2: "Its Wednesday", 3: "Its Thursday", 4: "Its Friday", 5: "Its Saturday", 6: "Its Sunday" }
a = datetime.date(int(year), int(mon), int(date)).weekday() # 3=Thursday
print verbose_dict[a]
答案 4 :(得分:0)
解决方案是使用列表或词典:
days = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', Saturday', 'Sunday']
print 'It\'s %s' % days[a]
答案 5 :(得分:-1)
我想,字典将是您案例中最优雅的解决方案。如果您需要更复杂的逻辑而不是简单的映射,那么您可能会想到一个switch语句。