2017-02-28 1 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 
관련 문제