在这种情况下,您可以使用两个不同的摩斯密码列表,一个用于大写字母,另一个用于小写字母。然后,根据明文中的字符类型选择相应的摩斯密码列表进行加密。以下是修改后的代码:
- # 以下为摩斯密码加密的方式
- mosi_upper = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..']
- mosi_lower = ['.-', '-...', '-.-.', '-..', '.', '..-.', '--.', '....', '..', '.---', '-.-', '.-..', '--', '-.', '---', '.--.', '--.-', '.-.', '...', '-', '..-', '...-', '.--', '-..-', '-.--', '--..']
- unmosi_upper = ['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']
- unmosi_lower = ['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']
- plain_kaisa = plain.translate(table1)
- print("凯撒加密后的密文是:", plain_kaisa)
- plain_combine = []
- for each in plain_kaisa:
- if each.isupper():
- plain_combine.append(mosi_upper[unmosi_upper.index(each)])
- else:
- plain_combine.append(mosi_lower[unmosi_lower.index(each)])
- print("凯撒、摩斯混合加密后的密文是:", plain_combine)
复制代码
这样,无论凯撒加密后的密文是大写还是小写,都可以根据字符类型选择相应的摩斯密码进行加密。 |