大学python的实验报告怎么写 (大学python程序设计一等奖)

大学python程序设计案例教材,大学python程序编写题库及答案

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

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

邮件内容如下:

" 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_str2

content = "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_content


decrypted_content = decrypt_email(content_str1, content_str2)
print(decrypted_content)  # 输出复原后的邮件内容

「代码分析:」

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