9

我正在尝试在 python 中创建一个程序,它会告诉您使用 Zeller 算法http://en.wikipedia.org/wiki/Zeller%27s_congruence出生的星期几,但它给了我这个错误

TypeError: 不支持的操作数类型 -: 'int' 和 'list'

这是为什么?

date = raw_input ("Introduce here the day, month and year you were born like this: DDMMYYYY")

if date.isdigit() and len(date) == 8:
    day = date[0:2]
    month = date[2:4]
    year = date[4:8]
    day = int(day)
    month = int(month)
    year = int(year)
    result = (day + (month + 1) * 2.6, + year % 100 + (year % 100) / 4 - 2 * [year / 100]) % 7

(这是我自己创建的第一个程序,请善待;))

4

2 回答 2

4

@mellamokb 和评论已经回答了您的直接问题的答案...

但是,我要指出 Python 已经是这个内置的,并且会更容易:

from datetime import datetime
d = datetime.strptime('1312981', '%d%m%Y')
# datetime(1981, 12, 13, 0, 0)

然后,您可以更轻松地对实际上是datetime而不是强制字符串的对象执行计算...

于 2012-12-26T15:12:00.750 回答
3

我认为2 * [year / 100]应该是括号而不是方括号,否则表明您要创建一个单元素列表:

(year % 100) / 4 - 2 * (year / 100))
                       ^          ^ change [] to ()
于 2012-12-26T15:01:01.153 回答