2016-08-08 1 views
0

다음은 간단한 시저의 암호 형식 프로그램 용 코드입니다.사전 및 isspace 함수 사용시 사소한 문제가 있습니다.

잘 작동하지만 사용자가 작성한 단어 사이의 잠재적 인 공백을 인식하지 못합니다.

프로그램이 문자 자체를 올바르게 번역하는 동안 공백을 생략하고 한 단어로 모여있는 모든 문자를 인쇄합니다.

나는이 문제를 직접 풀려고했지만 그 대신에 프로그램은 오류 코드 ( "AttributeError: 'dict' object has no attribute 'isspace'")를 씁니다.

다른 방법이 있습니까? key.isspace에서 CH 경우

key = {'a':'n', 'b':'o', 'c':'p', 'd':'q', 'e':'r', 'f':'s', 'g':'t', 
     'h':'u', 'i':'v', 'j':'w', 'k':'x', 'l':'y', 'm':'z', 'n':'a', 
     'o':'b', 'p':'c', 'q':'d', 'r':'e', 's':'f', 't':'g', 'u':'h', 
     'v':'i', 'w':'j', 'x':'k', 'y':'l', 'z':'m', 'A':'N', 'B':'O', 
     'C':'P', 'D':'Q', 'E':'R', 'F':'S', 'G':'T', 'H':'U', 'I':'V', 
     'J':'W', 'K':'X', 'L':'Y', 'M':'Z', 'N':'A', 'O':'B', 'P':'C', 
     'Q':'D', 'R':'E', 'S':'F', 'T':'G', 'U':'H', 'V':'I', 'W':'J', 
     'X':'K', 'Y':'L', 'Z':'M'} 


def change(message, new_message): 

    for ch in message: 
     if ch in key: 
      new_message += key[ch] 
     if ch in key.isspace(): 
      new_message += " " 
    return new_message 

def main(): 

    print 
    message = input("Type your message here.\n") 
    new_message = "" 
    print(change(message, new_message)) 

main() 
+1

에 무엇을 기대 라인'()'할까? – jwodder

+0

'key'는 당신의 사전이고,'isspace()'는 문자열이나 문자 클래스를위한 함수입니다. 그러므로, 당신은'ch.isspace()'에서 ch를 사용하지 말고'ch.isspace()'만 사용하십시오 –

+0

'key' dict에 하나의 공백을 쉽게 추가 할 수 있습니다. (단일 공간으로 매핑됩니다.) –

답변

1

변경 if ch in key.isspace():if ch.isspace():

+0

고마워요! 나는 사전 부분을 "우회"하는 간단한 방법이있을 것이라고 생각하고 있었지만, 나는 지금 사전 자료에 아직 익숙하지 않다. – TMK87

관련 문제