출처 : 반크_독도2023
참고풀이]
def Input(S):
Si=input(S+"할 문자열을 입력하세요 : ")
n=int(input("문자의 이동거리를 입력하세요(1~25) : "))
return Si, n
def PrintStr(S,Result):
print("\n" + S + "한 결과입니다]")
print(Result + "\n")
def Encrypt():
Str, N=Input("암호화")
#plain_text = "Love will find a way." # 평문
encrypted_text = "" # 암호문
for c in Str: # 평문의 모든 글자에 대하여 반복한다.
x = ord(c) # 글자의 코드값을 구한다.
x += N # 코드값을 하나 증가한다.
cc = chr(x) # 증가된 코드값에 해당하는 문자를 계산한다.
encrypted_text += cc # 암호문에 추가한다.
PrintStr("암호화",encrypted_text) # 암호문을 출력한다.
def Dencrypt():
dStr,N=Input("복호화")
#encrypted_text = "Mpwf!xjmm!gjoe!b!xbz/" # 암호문
plain_text = "" # 평문
for c in dStr: # 암호문의 모든 글자에 대하여 반복한다.
x = ord(c) # 글자의 코드값을 구한다.
x -= N # 코드값을 하나 감소한다.
cc = chr(x) # 감소된 코드값에 해당하는 문자를 계산한다.
plain_text += cc # 평문에 추가한다.
PrintStr("복호화",plain_text) # 평문을 출력한다.
#Main Part
while True:
Choice=input("1. 암호화\n2. 복호화\n0. 끝내기\n원하는 번호를 선택하세요 : ")
if Choice=="1":
Encrypt()
elif Choice=="2":
Dencrypt()
else:
print("수고하셨습니다.")
break
참고풀이 결과]
대한민국의 아름다운 영토, 독도의 겨울
'프로그램 > Python 1000제' 카테고리의 다른 글
Python 289제] 두근두근 파이썬(개정판) CHAPTER 9 도전문제 p282 (0) | 2024.06.28 |
---|---|
Python 288제] 두근두근 파이썬(개정판) CHAPTER 9 도전문제 p279 (0) | 2024.06.28 |
Python 286제] 파이썬 EXPRESS CHAPTER 10. 도전문제 p472 (0) | 2024.05.30 |
Python 285제] 파이썬 EXPRESS CHAPTER 9. Programming 03 p453 (0) | 2024.05.28 |
Python 284제] 파이썬 EXPRESS CHAPTER 9. Programming 02 p453 (0) | 2024.05.28 |
댓글