Python中的假日程序错误

时间:2013-12-02 16:20:37

标签: python python-3.x

我被要求制作一个程序,将我开始逗留旅行时间的那一天作为输入,并给出作为输出返回的那一天,所以我尝试了这个并且我不断收到错误( 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)

3 个答案:

答案 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)