简单的问题。 如何将函数中的局部变量转换为全局变量?这是我的代码,例如,在我的函数中我有三个主要的if语句,最后一个是不能查看因为我基本上缩短了网站上的代码,如果我选择1作为我的选择,我会完成该部分,然后我会按2.它会立即说“分配前引用的局部变量'键'”。提前谢谢。
def start():
print("Welcome to the Encryption / Decryption program!\n-------------------------------------------")
print("Please select a number (1-3) corresponding to the instruction you would like")
menuInput = input("[1] Encrypt a message\n[2] Decrypt a message\n[3] Exit the program\n\n-------------------------------------------\n")
if menuInput == '1':
print("You have chosen to Encrypt a message!")
invalid_input = False
encrypt = input("Please type in the name of the file containing the non-encrypted message\n")
encrypt = encrypt.upper()
message = open("sample.txt","r")
msg = ''
for words in message:
msg += str(words)
if encrypt == "SAMPLE":
key = ''
for i in range(0,8):
random_number = (random.randint(33,126))
key+=str(chr(random_number))
print(key)
print("You will need this key to decrypt your file!")
time.sleep(1.5)
print("Encrypting your file now...")
time.sleep(5)
elif menuInput == '2':
print("You have chosen to decrypt a message!")
invalid_input = False
print(key)
显然我会调用不同的变量,我只是使用变量'key'来使它更容易理解。另外,如果有任何人有关于写入文件和在python本身内重命名文件的任何提示,那么由于我对python相当新,所以也是一个巨大的帮助所以是的!非常感谢你的帮助,我非常感谢你!
感谢您的帮助。
答案 0 :(得分:0)
key = None
def start():
global key
# and so on...
但不建议使用全局变量。您应该考虑其他选项,如评论中所建议的那样。无论如何,如果你刚开始使用Python已经足够了,那么就有时间编写更好的代码了!
希望它有所帮助。