我被要求制作一个程序,将我开始逗留旅行时间的那一天作为输入,并给出作为输出返回的那一天,所以我尝试了这个并且我不断收到错误( KeyError = -3)
注意:我是初学者,所以对我来说很容易:)
dect = {0:'Sunday', 1: 'Monday', 2:'Tuesday',3:'Wednesday', 4:'Thursday',
5:'Friday',6:'Saturday'
}
def day(x):
print( dect[x])
def holiday(start,length):
length = length + start
while True:
if length <= 0:
break
print(length)
else:
length = length - 7
day(length)
s = int(input('Enter the start day: '))
l = int(input('Enter the length of your stay: '))
holiday(s,l)
答案 0 :(得分:4)
length
的值可能会变为负数,这就是您在字典中查找-3
的原因。
例如,如果我的假期是4天(length = 4
),那么您正在执行length = length - 7
,这意味着您通过day()
致电-3
作为价值。
您的词典仅包含键0 - 6的值以及因为键KeyError
不在词典中而获得-3
的原因。
您可以将支票更改为if length < 7
。
答案 1 :(得分:0)
您可以做的只是使用日期时间模块。
from datetime import date,timedelta
d = date.today() + timedelta(days=2)
print d
您可以使用timedelta添加任意数量的天/小时/。 See here用于文档。
答案 2 :(得分:0)
将假日功能替换为 -
def holiday(start,length):
length = length + start
length = length % 7
day(length)