马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
# 摩斯密文表
c_table = [".-", "-...", "-.-.", "-..", ".", "..-.",
"--.", "....", "..", ".---", "-.-", ".-..",
"--", "-.", "---", ".--.", "--.-", ".-.",
"...", "-", "..-", "...-", ".--", "-..-",
"-.--", "--..", ".----", "..---", "...--", "....-",
".....", "-....", "--...", "---..", "----.", "-----"]
# 摩斯明文表
d_table = ["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", "1", "2", "3", "4",
"5", "6", "7", "8", "9", "0"]
code = input("请输入摩斯密码:")
split_code = code.split(" ") 这一行代码什么意思,可不可以去掉
result = [d_table[c_table.index(each)] for each in split_code] 这里为什么遍历的是split_codesplit_code
print(result)
本帖最后由 jackz007 于 2022-11-10 16:58 编辑
- # 摩斯密文表
- c_table = [".-", "-...", "-.-.", "-..", ".", "..-.",
- "--.", "....", "..", ".---", "-.-", ".-..",
- "--", "-.", "---", ".--.", "--.-", ".-.",
- "...", "-", "..-", "...-", ".--", "-..-",
- "-.--", "--..", ".----", "..---", "...--", "....-",
- ".....", "-....", "--...", "---..", "----.", "-----"]
- # 摩斯明文表
- d_table = ["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", "1", "2", "3", "4",
- "5", "6", "7", "8", "9", "0"]
-
- code = input("请输入摩斯密码:")
- split_code = code . split(" ") # 你输入的莫尔斯密码是靠空格进行分割的,这一句的目的就是把键入的莫尔斯密码按空格切分成多个独立的编码单元构成的列表,
- # 比如,如果键入了 "... --- ..." 就会被切分成 ['...' , '---' , '...'],这样,后面就可以通过遍历列表的每一个元素,为密文匹配到对应的明文字符。
- result = [d_table[c_table.index(each)] for each in split_code] # 为什么遍历就不用再做解释了吧
- print(result)
复制代码
如果把密文表和明文表组合成字典(Key 是密文,Value 是明文)操作就可以稍微简单一些
- # 摩斯密文表
- c_table = [".-", "-...", "-.-.", "-..", ".", "..-.",
- "--.", "....", "..", ".---", "-.-", ".-..",
- "--", "-.", "---", ".--.", "--.-", ".-.",
- "...", "-", "..-", "...-", ".--", "-..-",
- "-.--", "--..", ".----", "..---", "...--", "....-",
- ".....", "-....", "--...", "---..", "----.", "-----"]
- # 摩斯明文表
- d_table = ["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", "1", "2", "3", "4",
- "5", "6", "7", "8", "9", "0"]
- e = dict(zip(c_table , d_table))
- code = input("请输入摩斯密码:")
- txt = '' . join([e[x] for x in code . split()])
- print(txt)
复制代码
运行实况:
- D:\[00.Exerciese.2022]\Python>x
- 请输入摩斯密码:... --- ... .---- ..--- ...--
- SOS123
- D:\[00.Exerciese.2022]\Python>
复制代码
|