关于字典课程中例题代码运行出错的问题
我在学习小甲鱼老师字典的课程时,尝试运行了课程中的代码范例,但在运行后均出错了,麻烦大神帮忙看下问题出在哪里,谢谢啦!课程中的代码范例如下:
例子1
# 摩斯密文表
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)
例子2
# 摩斯密码对比表
c_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)
例子3
# 摩斯密码对比表
c_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)
上述代码在实际运行中出错的信息烦请见附件.
你好!看起来你的代码示例中有一些问题,主要是由于字典未正确定义和使用。让我们逐一检查并修正每个例子:
**例子1**
# 摩斯密文表(假设要定义)
c_table = {"A": ".-", "B": "-...", "C": "-.-."}# 示例内容
# 摩斯明文表(假设要定义)
d_table = {".-": "A", "-...": "B", "-.-.": "C"}# 示例内容
code = input("请输入摩斯密码:")
split_code = code.split(" ")
result = for each in split_code if each in d_table]# 需要从d_table中查找每个字符
print(result)
**例子2**
# 摩斯密码对比表
c_table = {".-": "A", "-...": "B", "-.-.": "C"}# 示例内容
code = input("请输入摩斯密码:")
split_code = code.split(" ")
result = for each in split_code if each in c_table]# 需要从c_table中查找每个字符
print(result)
**例子3**
你的第三个例子已经接近正确,只是需要确保在列表解析中从字典中查找,而不是直接引用字典:
# 摩斯密码对比表
c_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 if each in c_table]
print(result)
如果你的字典元素不完整或者你尝试使用未经定义的字典,你的代码就会出错。另外,假设摩斯密码输入是用空格分隔的字符。在`result`列表中,确保每一个`each`都存在于字典中,这样可以避免KeyError。
如果有其他问题,请随时告诉我!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 课程中的代码范例是将摩斯密码转换为字母,而不是将字母转换为摩斯密码。
尝试输入
.... . .-.. .-.. ---
代码将会输出HELLO 本帖最后由 jackz007 于 2024-11-30 10:49 编辑
# 摩斯密文表
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(d_table , c_table))
while True :
s = input('请输入字符串 :')
try :
print(' ' . join(map(lambda x : e , s)))
break
except :
print('输入中含有无效字符\n')
d = dict(zip(c_table , d_table))
while True :
s = input('请输入摩尔斯码 :')
try :
print('' . join(map(lambda x : d , s . split(' '))))
break
except :
print('输入中含有无效字符\n')
运行实况:
D:\\Python>python x.py
请输入字符串 :abCdE
.- -... -.-. -.. .
请输入摩尔斯码 :.- -... -.-. -.. .
ABCDE
D:\\Python>
页:
[1]