2016-08-02 15 views
0

私が行っていたコースの質問に答えるために書いていたスクリプトで深刻な問題に直面しています。私はSyntaxErrorを取得し続けます:無効なシンタックスライン138ですが少し奇妙でした。ここに私のスクリプトです。もし誰かがこれを解決する方法を説明することができれば素晴らしいだろう。これら二つの線の間SyntaxError:無効な構文ライン138予期しないエラー

class Message(object): 

    def __init__(self, text): 

     self.message_text = text 
     self.valid_words = load_words(WORDLIST_FILENAME) 


    def get_message_text(self): 

     return self.message_text 


    def get_valid_words(self): 

     return self.valid_words[:] 

    def build_shift_dict(self, shift): 

     lc_str = string.ascii_lowercase 
     uc_str = string.ascii_uppercase 

     shifted_dict = {} 

  
     for ltr in lc_str: 
      if lc_str.index(ltr) + shift < 26: 
       shifted_dict[ltr] = lc_str[lc_str.index(ltr) + shift] 
      else: 
       shifted_dict[ltr] = lc_str[lc_str.index(ltr)-26+shift] 

     for ltr in uc_str: 
      if uc_str.index(ltr) + shift < 26: 
       shifted_dict[ltr] = uc_str[uc_str.index(ltr) + shift] 
      else: 
       shifted_dict[ltr] = uc_str[uc_str.index(ltr)-26+shift] 

     return shifted_dict 


    def apply_shift(self, shift): 

     cipher = self.build_shift_dict(shift) 
     ciphertext = "" 

     for char in self.message_text: 
      if char in cipher: 
       ciphertext = ciphertext + cipher[char] 
      else: 
       ciphertext = ciphertext + char 

     return ciphertext 
+2

ここに138行よりもはるかに少ないがあります。これらの行の1つはコードの138行ですか?もしそうなら、どちらを教えてもらえますか? – smarx

+2

正確なメッセージを伝えることはできますか?私たちはどのライン138が正確であるか分からない。 – idjaw

+0

投稿を編集して[mcve]を提供してください。 –

答えて

1

ありがとう:

shifted_dict = {} 

for ltr in lc_str: 

あなたは非ASCII文字('\xe2')を持っています。消して。

(あなたがPythonインタプリタであなたのコードをロードしようとすると、Pythonはまさにこのことをあなたに伝えます。)

関連する問題