空白君学python 发表于 2022-11-10 16:33:51

关于字典摩斯代码有几处不理解希望大佬指点指点

# 摩斯密文表
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 = for each in split_code]这里为什么遍历的是split_codesplit_code
print(result)

jackz007 发表于 2022-11-10 16:43:19

本帖最后由 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 = 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( for x in code . split()])
print(txt)
      运行实况:
D:\\Python>x
请输入摩斯密码:... --- ... .---- ..--- ...--
SOS123

D:\\Python>

空白君学python 发表于 2022-11-10 21:46:19

spilt_code=code.spilt会分割输入的密文
然后遍历这个被分割的字符串 再用遍历到的字符串找到密文序列 用密文序列找出对应的字符
再打印出找到的字符
这样理解没错吧
页: [1]
查看完整版本: 关于字典摩斯代码有几处不理解希望大佬指点指点