27讲练习最后一题
s = input("请按规则输入一个字符串:")length = len(s)
res = []
# 获取字母 a 的编码值
base = ord('a')
# 从第一个元素开始,每次迭代跳过一个元素
for i in range(0, length, 2):
# ord(s) - base 操作得到一个字母的偏移值,比如 b 就是 1
# 跟 26 求余数的作用是防止溢出,循环计算偏移
shift = chr((ord(s) - base + int(s)) % 26 + base)
print(s+shift, end="")
这个和26取余数防溢出具体是怎么操作的,不太理解 就像钟表一样,钟只能表示 12 个小时,所以一旦超过 12 个小时就得让时钟回到原点,
而这个操作就相当于和12取余数,
这个也是一样的道理,因为只有 26 个字母,为了使它偏移后不超出字母的范围,就得和26取余数
页:
[1]