암호화 및 암호 해독 시스템을 만들려고했지만 약간의 오류가 발생했습니다.할당 전에 로컬 변수를 참조 할 수 있습니다 - Python
import sys
import pyperclip
def copy(data):
question = input("Copy to clipboard? ")
if question.lower() == 'yes' or question.lower() == 'y':
pyperclip.copy(data)
print("Encrypted message copied to clipboard.")
rerun()
elif question.lower() == 'no' or question.lower() == 'n':
rerun()
else:
print("You did not enter a valid input.")
copy(data)
def rerun():
ask = input("\nWould you like to run this program again? ")
if ask.lower() == "yes" or ask.lower() == "y":
print(" ")
run()
elif ask.lower() == 'no' or ask.lower() == 'n':
sys.exit("\nThank you!")
else:
print("You did not enter a valid input.")
rerun()
def encrypt(key, msg):
encrypted_message = []
for i, c in enumerate(msg):
key_c = ord(key[i % len(key)])
msg_c = ord(c)
encrypted_message.append(chr((msg_c + key_c) % 127))
return ''.join(encrypted_message)
def decrypt(key, encrypted):
msg = []
for i, c in enumerate(encrypted):
key_c = ord(key[i % len(key)])
enc_c = ord(c)
msg.append(chr((enc_c - key_c) % 127))
return ''.join(msg)
def run():
function_type = input("Would you like to encrypt or decrypt a message? ")
if function_type.lower() == "encrypt" or function_type.lower() == "e":
key = input("\nKey: ")
msg = input("Message: ")
data = encrypt(key, msg)
enc_message = "\nYour encrypted message is: " + data
print(enc_message)
copy(data)
elif function_type.lower() == "decrypt" or function_type.lower() == "d":
key = input("\nKey: ")
question = input("Paste encrypted message from clipboard? ")
if question.lower() == 'yes' or question.lower() == 'y':
encrypted = pyperclip.paste()
print("Message: " + encrypted)
elif question.lower() == 'no' or question.lower() == 'n':
encrypted = input("Message: ")
else:
print("You did not enter a valid input.")
run()
decrypted = decrypt(key, encrypted)
decrypted_message = "\nYour decrypted message is: " + decrypted
print(decrypted_message)
copy(decrypted)
else:
print("\nYou did not enter a valid input.\n")
run()
run()
그것은 지역 변수 '암호화'할당하기 전에 참조 할 수와 하이라이트 실행() 함수에서
decrypted = decrypt(key, encrypted)
말한다 : 여기 내 코드입니다.
다른 함수에서 'encrypted'변수를 사용했기 때문에 그것이 가능합니까? 그렇다면 어떻게 수정하고 내 프로그램의 기능을 유지할 수 있습니까?
나는 당신이 당신의 대답을 설명 할 수 있다면 나는 그것을 고맙게 생각할 것이기 때문에 비교적 새로운 것이다.
으로
if
조건 중 하나라도하기 전에 변수를 초기화 할 수 있습니다. 고맙습니다! – PythonPie