9

Zellerアルゴリズムhttp://en.wikipedia.org/wiki/Zeller%27s_congruenceを使用して生まれた曜日を通知するプログラムをPythonで作成しようとしていますが、このエラーが発生します

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 に答える