<p>好吧,似乎你需要做一些修改,而用户作出选择。在这里,我对您的代码片段进行了一些修改,请看一下:</p>
<pre><code>def main():
print("Welcome to the Vigenere-cipher Encryption/Decryption Program\n")
validStrings = ['e', 'd', 'x']
while True :
userInput = input("Would you like to (e)ncrypt a file, (d)ecrypt a file, or e(x)it (enter e, d, or x)? ")
if(userInput not in validStrings)
userInput = input("Sorry, that's an invalid choice. Please enter only e, d, or x: ")
elif :
if userInput == 'e':
while True:
path = input("Enter the text-file name to encrypt: ")
if osp.exists(path):
encrypt(path)
else:
print("Sorry the file", path, "does NOT exist please try again!")
continue
elif userInput == 'd':
path = input("Enter the text-file name to decrypt: ")
if osp.exists(path):
fileName,fileExtension = osp.split(path)
fileName = fileName+".txt"
if osp.exists(fileName):
print("WARNING: The file '%s' already exists!" %fileName)
ch = input("Is it okay to wipe it out (y/n)? ")
if ch == 'n':
fileName = input("Enter the file name text that should be used (.txt extension will automatically be added) ")
fileName = fileName + ".txt"
elif ch == 'y':
pass
decrypt(path, fileName)
continue
elif userInput == 'x':
break
print("Program Complete!")
return
</code></pre>
<p>这里所做的唯一更改是,在用户提供“x”作为输入之前,while循环将不允许用户执行任何其他操作。你知道吗</p>
<p>如果有用请告诉我。你知道吗</p>