大学Python程序设计实验报告:邮件内容加密和复原

云课堂学Python 2024-04-13 09:57:30

现在你需要写程序,完成邮件内容加密和复原工作。

「任务一:加密邮件内容:」

邮件内容如下:

" This is a top secret letter. Read it after decryption!"

编程拆分为以下两个字符串:

内容字串一:"!otycdrtat aR .etltre o ish"

内容字串二:"nipre ef ide rte ecsptas iT"

「任务二:加密邮件复原:」

收到邮件后字串连接成一个字串:

"!noitpyrced retfa ti daeR .rettel terces pot a si sihT"

然后将上成字串正序:

"This is a top secret letter. Read it after decryption!"

「提示:」

1、 为了便于处理,请先判断邮件字符数是否为偶数,如果字符数是奇数,可通过在尾部添加空格方式凑成偶数,这样拆分后内容一和内容二字符数相等,方便后续处理。

2、 内容一和内容二通过反向切片方式拆分获取。

3、 字符串遍历,如:

str ="abcdefgh"for i in range(len(str)): print(str[i])

4、字符串连接:+

下面提供了两个Python函数,一个用于加密邮件内容,另一个用于复原加密后的邮件内容。

def encrypt_email(content): # 判断字符数是否为偶数,如果不是则在末尾添加一个空格 if len(content) % 2 != 0: content += ' ' # 将内容拆分为两个字符串 content_str1 = content[1::2] # 偶数位字符 content_str2 = content[0::2] # 奇数位字符 # 反转两个字符串 content_str1 = content_str1[::-1] content_str2 = content_str2[::-1] return content_str1, content_str2content = "This is a top secret letter. Read it after decryption!"content_str1, content_str2 = encrypt_email(content)print(content_str1) # 输出内容一print(content_str2) # 输出内容二def decrypt_email(content_str1, content_str2): combined_content = [] for i in range(2*len(content_str1)): combined_content.append(0) # 反转字符串 content_str1 = content_str1[::-1] content_str2 = content_str2[::-1] # 将两个字符串连接在一起 combined_content[1::2] = list(content_str1) combined_content[0::2] = list(content_str2) decrypt_content = "".join(combined_content) return decrypt_contentdecrypted_content = decrypt_email(content_str1, content_str2)print(decrypted_content) # 输出复原后的邮件内容

「代码分析:」

利用字符串切片 [1::2] [::-1] 分别提取字符串奇数和偶数位上的字符。利用字符串切片 [::-1] 反转字符串。创建列表 combined_content = [] 填充与字符串长度相同数量的 0。将内容一和内容二转换为列表,利用切片 [1::2] [::-1] 将内容赋值给列表 combined_content = []。使用 join() 方法将列表连接生成字符串。
0 阅读:1

云课堂学Python

简介:感谢大家的关注