2017-02-28 109 views
1

大家好:)我正在構建一個腳本,用簡單的文本旋轉(ROT)編碼文本。 該腳本運行良好,但我有一個問題,它也旋轉所有符號像[空格,!,?,。]我正在與ascii表做它,我可以做什麼以避免旋轉該類型的字符?如何識別字符串中的非字母

def rot13(input,key): #Function to code a text with caeser chyper. 
    if key > 25: 
     key = 25 
    elif key < 2: 
     key = 2 
    finaltext = '' 
    for letter in input: 
     num = ord(letter) 
     if (num + key) > 122: #If the final number is greater than 122.. 
      x = (num + key) - 122 
      finaltext += chr(x + ord('a') - 1) 
     elif((num + key <= 122)): 
      finaltext += chr(num + key) 
    print(finaltext) 

回答

3

「旋轉」 你的角色之前,添加一個檢查,看看它是否是字母:

if letter.isalpha(): 
    # Do your thing 
else: 
    finaltext += letter 
+0

謝謝:)這工作好! – prossellob

1

試試這個:

>>> import string 
>>> letter = 'a' 
>>> letter in string.letters 
True 
>>> letter = '.' 
>>> letter in string.letters 
False 
相關問題