Código em python

Bem, o problema é o seguinte: estou com este código em python

words = {'gato': 'cat', 'muro': 'wall', 'rato': 'mouse', 'livro': 'book', 'mesa': 'table'}
a = input("Type a word: ")
c = words.has_key(a)
if c == true:
  print ("O significado de %s eh %s")%(a,c)
else:
  print ("No momento, o dicionário nao possui esta palavra")
a = raw_input("Tecle algo para continuar")

No entanto, quando o compilo, sempre dá erro na parte do input, e quando coloco este codigo no eclipse (utilizando o plugin Pydev), ele diz que as palavras em portugues estão erradas.

QUESTÃO: Em qual parte do meu código há erro?
OBS: Utilizo o Python 2.6 (Versão mais nova)

Outra OBS:

Quando este codigo é rodado no IDLE do Python, aparece a seguinte mensagem:

Traceback (most recent call last):
File “…dicionario.py”, line 2, in
a = input("Type a word: ")
File “”, line 1, in
NameError: name ‘gato’ is not defined

Só fiz três mudanças no seu código e tá funcionando direito. A primeira é usar raw_input() ao invés de input(). Com raw_input(), o python não tenta adivinhar qual é o objeto e joga logo como string. A segunda foi no if, troquei true por True ( que é o que existe no python). A terceira foi mostrar a tradução correta colocando ao invés de (a,c) por (a,words[a]).

Até!