2014-04-16 42 views
0

我試圖做一個Caeser密碼程序。有人可以告訴我爲什麼我得到這個錯誤?這是當我檢查,看是否pip.index(字母)+ k大於25簡單caser密碼python

Traceback (most recent call last): 
    File "/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 1, in  <module> 
    # Used internally for debug sandbox under external interpreter 
    File "/Applications/WingIDE.app/Contents/MacOS/src/debug/tserver/_sandbox.py", line 17, in CaeserCipher 
ValueError: substring not found 

這裏發生的一切是我的代碼:

string = 'hello' 
k = 3 

def CaeserCipher(string, k): 

    upper = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
    lower = 'abcdefgihjklmnopqrstuvwxyz' 

    newCipher = '' 

    for letter in string: 
     if letter in upper: 
      if upper.index(letter) + k > 25: 
       indexPosition = (upper.index(letter) + k) - 25 
       newCipher = newCipher + upper[indexPosition] 
      else: 
       indexPosition = upper.index(letter) + k 
       newCipher = newCipher + upper[indexPosition] 
     elif letter in lower: 
      if upper.index(letter) + k > 25: 
       indexPosition = (upper.index(letter) + k) - 25 
       newCipher = newCipher + upper[indexPosition] 
      else: 
       indexPosition = upper.index(letter) + k 
       newCipher = newCipher + upper[indexPosition] 

    return newCipher 

回答

1

在你elif letter in lower:塊你」重新訪問upper而不是lower。看起來你複製並粘貼了代碼塊而不替換那些代碼?