夢追い人

"It takes a dreamer to make a dream come true."―Vincent Willem van Gogh

python苦戦中#2

コードをこうしてみると・・・

 #!/usr/bin/env python
# -*- coding:utf-8 -*-

class algo:
 def __init__(self,n,m):
  self.data = []
 def per(self,n):
  x = n
  while n > 0:
   n = n - 1
   x = x * n
  self.data.append(x)
  return result
 def com(self,n,m):
  a = n - 1
  b = per(m)
  c = b[0]
  while m > 0:
   n = n * a
   a = a - 1
   m = m - 1
  d = n / c
  self.data.append(d)
  return result

def venn(n):
 y = algo(n,1)
 i = y[0]
 n = n - 1
 a = 1
 while n > 0:
  if a % 2 == 0:
   b = algo(n,a)
   x = b.p * b.c
   i = i + x
   n, a = n-1, a+1
  else:
   b = algo(n,a)
   x = b.p * b.c
   i = i - x
   n, a = n-1, a+1
 print i

print """
--------------------------------------------------------------------------------

Q. 1からnまでの数字を1個ずつ使う、n文字の順列のうち
    「1が1番目になく、2が2番目になく・・・nがn番目にない」
     ようなものはいくつあるか?

--------------------------------------------------------------------------------
"""
n = int(raw_input("nにあたる数を入力してください:"))
print  """
--------------------------------------------------------------------------------
"""
print 'Answer is'
venn(n)
print """
--------------------------------------------------------------------------------
"""

エラーはこうなった。
Traceback (most recent call last):
  File "venn.py", line 58, in
    venn(n)
  File "venn.py", line 28, in venn
    i = y[0]
AttributeError: algo instance has no attribute '__getitem__'

これなら、調べれば出てきそうなので後もう少し頑張ります。