본문 바로가기
파이썬/코드업

파이썬 코드업 1675 : 시저의 암호 1

by artra 2021. 12. 7.
반응형
 

파이썬 코드업 1675 : 시저의 암호 1

# 파이썬 코드업 1675 : 시저의 암호 1
 
# 대문자 A~Z = 65~90 (10진수) / 41~5A (16진수)
# 소문자 a~z = 97~122 (10진수) /  61~7A (16진수)
# 32(10진수) = 빈칸(Space)
# ord(a) = 97출력 / ord()는 유니코드 정수로 반환한다
 
# 입력예시 : qhyhu wuxvw euxwxv
# 출력예시 : never trust brutus
 
# 알파벳 q 자리에서 - 3을 하여 n을 만든다 그외 나머지도 모두 -3
 
= input()  # qhyhu wuxvw euxwxv 입력
= []  # 입력받은 값을 유니코드 정수로 담을 리스트 생성
= []  # b 리스트값을 유니코드 문자로 바꿀 리스트 생성
 
for i in a:  # a값을 qhyhu wuxvw euxwxv for i 돌린다
    if ord(i) == 32:
        # 문자를 유니코드정수 ord(i)로 바꾼 빈칸 32값이 나오면
        b.append(ord(i))  # 빈칸값 32를 b리스트에 그대로 저장
 
    elif 94 <= ord(i) - 3 <= 96:
        # a,b,c 는 -3 을하면 94,95,96 = ^ , _ , ` 기호로 된다
        b.append(ord(i) + 23# 여기에 +23을 하여 x,y,z 로 만든다
 
    elif ord(i) >= 97:
        b.append(ord(i) - 3)
    # a,b,c 를 제외한 값은 유니코드정수-3 을하여 b리스트에 담는다
    # b리스트를 출력하면 아래와 같은 값을 출력한다
    # [110, 101, 118, 101, 114, 32, 116, 114, 117, 115, 116, 32, 98, 114, 117, 116, 117, 115]
 
for i in b:
    c.append(chr(i))
# c를 그냥 출력하면
# ['n', 'e', 'v', 'e', 'r', ' ', 't', 'r', 'u', 's', 't', ' ', 'b', 'r', 'u', 't', 'u', 's']
 
# c를 "".join(출력할리스트) 으로 리스트내 문자들을 모두 합쳐준다
print("".join(c))
# never trust brutus 으로 출력
cs
반응형

댓글