小甲鱼最新Python课程 字典(上)
x = ["a","A","b","B","c","C","d","D"]code = input("请输入摩斯密码: ")
请输入摩斯密码: b c
split_code = code.split(" ")
result = []
for each in split_code:
_ = x.index(each)+1
result.append(x)
print(result)
['B']
['B', 'C']
为什么多了个B? 问题解析:为什么多了个 B?
你给出的代码逻辑大致如下:
x =
code = input("请输入摩斯密码: ")
split_code = code.split(" ")
result =
for each in split_code:
_ = x.index(each)+1
result.append(x)
print(result)
从代码结构来看,存在几个关键问题:
[*]x 没有初始化:你没有给 x 赋值,它应该是一个摩斯密码表(例如摩斯码和字母的对应关系)。
[*]result 没有初始化:你没有定义 result = [],导致后续 result.append(x) 会出错。
[*]append 错误对象:你在循环中 result.append(x),这会把整个 x 列表加进去,而不是你想要的字母。
[*]多了个 B 的原因:很可能是你在 x 中的索引错了,或者你每次都把整个 x 加进了 result,而不是具体的字母。
正确写法示例:
假设你有一个摩斯密码表如下:
x = ['a', 'b', 'c']
morse = ['.-', '-...', '-.-.']
code = input("请输入摩斯密码: ")
split_code = code.split(" ")
result = []
for each in split_code:
index = morse.index(each)
result.append(x)
print(result)
总结:
你多了个 B,可能是因为你 append 了整个 x 列表,而不是具体的字母。请检查你的 x 和 result.append() 的写法,确保只添加你想要的字符。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 这一句
print(result)
的缩进位置错了,正确的代码为:
x = ["a","A","b","B","c","C","d","D"]
code = input("请输入摩斯密码: ")
split_code = code.split(" ")
result = []
for each in split_code:
_ = x.index(each)+1
result.append(x)
print(result) # 缩进位置错误,已经改正 jackz007 发表于 2025-3-31 23:37
这一句
的缩进位置错了,正确的代码为:
好的 谢谢大佬,不过有个问题,print缩进在最前面,编辑器模式就显示正常,在交互模式,只有我发的那个同等缩进才能显示成功,不然就报错,这是啥情况 本帖最后由 jackz007 于 2025-4-1 14:57 编辑
一定能行 发表于 2025-4-1 10:28
好的 谢谢大佬,不过有个问题,print缩进在最前面,编辑器模式就显示正常,在交互模式,只有我发的那个同 ...
交互模式一次只能输入一条语句,for 循环的全部语句块也算单条语句,交互模式下结束 for 循环的方法是输入一个空行,循环就会立即得到执行,这时,再顶格(无缩进)输入 print() 语句,立即就会看到打印结果。
页:
[1]