一、学习目标
计算思维提升:
学生理解了凯撒密码的基本原理,学会通过代码实现简单的加密过程。
编程能力提升:
学生学到了字符串的基本操作和条件语句的使用。
二、“三位”
1、自然语言描述: 介绍基本的凯撒密码原理,即将每个字母按照一个固定的位移量进行替换。学生需要理解替换的规则和原理。
位移量:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z |
a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z |
2、流程图设计: 合作设计展示凯撒密码加密过程的流程图。
开始节点
|
接收用户输入(明文)
|
输入位移量
|
替换每个字母
|
输出密文
|
结束
3、编码实现: 读懂代码,将流程图中的步骤转化为实际程序。
def caesar_cipher(plaintext, shift):
ciphertext = ""
for char in plaintext:
if char.isalpha():
# 判断是大写还是小写字母
is_upper = char.isupper()
# 将字母按照位移量进行替换
char = chr((ord(char) - ord('A' if is_upper else 'a') + shift) % 26 + ord('A' if is_upper else 'a'))
ciphertext += char
return ciphertext
# 用户输入明文和位移量
plaintext = input("输入明文: ")
shift = int(input("输入位移量: "))
# 加密明文
ciphertext = caesar_cipher(plaintext, shift)
print(f"密文: {ciphertext}")
三、代码体验之数据解密大挑战
1、使用中小学信息科技平台登陆账号,根据教师的要求,运行代码并对明文进行加密
选择备选明文实例——发布密文
2、挑战者在平台上找到密文并在规定范围内(shift<5)的情况下,对密文进行解密。
解密——求shift值,发布明文