帮我重构以下某程序的主函数,使之在编辑器里看起来不那么模棱两可: ``` def main(): """程序主函数""" print("""请按要求输入以下内容以加/解密: 1. 加密:请输入“en:key,content” 2. 解密: 请输入“de:key,content” * 注:其中,key 代表凯撒密码位移密钥,数字,不建议 |key| >= 26,超过了也会取模; content 代表要加密的内容。 加密解密时用的密钥必须时一样的!否则只会出错 加/解密内容将被自动复制。 ======================================================""") while True: obj = re.compile( r"^(?P<type>.*?)(:|:)(?P<key>.*?)(,|,)(?P<content>.*?)$", re.S) input_text = input(">>>") if input_text == "exit": break else: handle = obj.search(input_text) if handle: if handle.group("type") == "en": encryption = total_encrypt(handle.group( "content"), int(handle.group("key"))) print("加密结果:" + encryption) elif handle.group("type") == "de": try: decryption = total_decrypt(handle.group( "content"), int(handle.group("key"))) print("解密结果:" + decryption) except: print("解密出错,可能是密文或密钥出错,若能排除以上情况请将详细内容反馈给开发者!") else: print("输入内容不合法") else: print("输入内容不合法或未进行输入!") print("您已退出!") ```
时间: 2023-02-08 14:21:00 浏览: 100
以下是代码重构的示例:
```
def main():
"""程序主函数"""
print("""请按要求输入以下内容以加/解密:
1. 加密:请输入“en:key,content”
2. 解密: 请输入“de:key,content”
* 注:其中,key 代表凯撒密码位移密钥,数字,不建议 |key| >= 26,超过了也会取模;
content 代表要加密的内容。
加密解密时用的密钥必须时一样的!否则只会出错 加/解密内容将被自动复制。
======================================================""")
obj = re.compile(r"^(?P<type>.*?)(:|:)(?P<key>.*?)(,|,)(?P<content>.*?)$", re.S)
while True:
input_text = input(">>>")
if input_text == "exit":
break
else:
handle = obj.search(input_text)
if handle:
if handle.group("type") == "en":
encryption = total_encrypt(handle.group("content"), int(handle.group("key")))
print("加密结果:", encryption)
elif handle.group("type") == "de":
try:
decryption = total_decrypt(handle.group("content"), int(handle.group("key")))
print("解密结果:", decryption)
except:
print("解密出错,可能是密文或密钥出错,若能排除以上情况请将详细内容反馈给开发者!")
else:
print("输入内容不合法")
else:
print("输入内容不合法或未进行输入!")
print("您已退出!")
```
主要是将正则表达式的编译提前,避免重