鱼C论坛

 找回密码
 立即注册
查看: 200|回复: 4

[已解决]小甲鱼最新Python课程 字典(上)

[复制链接]
发表于 2025-3-31 22:23:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. x = ["a","A","b","B","c","C","d","D"]

  2. code = input("请输入摩斯密码: ")
  3. 请输入摩斯密码: b c
  4. split_code = code.split(" ")

  5. result = []
  6. for each in split_code:
  7.     _ = x.index(each)+1
  8.     result.append(x[_])
  9.     print(result)
  10.    
  11. ['B']
  12. ['B', 'C']
复制代码


为什么多了个B?
最佳答案
2025-3-31 23:37:51
        这一句
  1. print(result)
复制代码

        的缩进位置错了,正确的代码为:
  1. x = ["a","A","b","B","c","C","d","D"]

  2. code = input("请输入摩斯密码: ")
  3. split_code = code.split(" ")
  4. result = []
  5. for each in split_code:
  6.     _ = x.index(each)+1
  7.     result.append(x[_])
  8. print(result)                # 缩进位置错误,已经改正
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2025-3-31 22:24:26 | 显示全部楼层
问题解析:为什么多了个 B?

你给出的代码逻辑大致如下:


  1. x =
  2. code = input("请输入摩斯密码: ")
  3. split_code = code.split(" ")

  4. result =
  5. for each in split_code:
  6.     _ = x.index(each)+1
  7.     result.append(x)
  8.     print(result)
复制代码


从代码结构来看,存在几个关键问题:

  • x 没有初始化:你没有给 x 赋值,它应该是一个摩斯密码表(例如摩斯码和字母的对应关系)。
  • result 没有初始化:你没有定义 result = [],导致后续 result.append(x) 会出错。
  • append 错误对象:你在循环中 result.append(x),这会把整个 x 列表加进去,而不是你想要的字母。
  • 多了个 B 的原因:很可能是你在 x 中的索引错了,或者你每次都把整个 x 加进了 result,而不是具体的字母。


正确写法示例:

假设你有一个摩斯密码表如下:


  1. x = ['a', 'b', 'c']
  2. morse = ['.-', '-...', '-.-.']
  3. code = input("请输入摩斯密码: ")
  4. split_code = code.split(" ")

  5. result = []
  6. for each in split_code:
  7.     index = morse.index(each)
  8.     result.append(x[index])

  9. print(result)
复制代码


总结:

你多了个 B,可能是因为你 append 了整个 x 列表,而不是具体的字母。请检查你的 xresult.append() 的写法,确保只添加你想要的字符。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-3-31 23:37:51 | 显示全部楼层    本楼为最佳答案   
        这一句
  1. print(result)
复制代码

        的缩进位置错了,正确的代码为:
  1. x = ["a","A","b","B","c","C","d","D"]

  2. code = input("请输入摩斯密码: ")
  3. split_code = code.split(" ")
  4. result = []
  5. for each in split_code:
  6.     _ = x.index(each)+1
  7.     result.append(x[_])
  8. print(result)                # 缩进位置错误,已经改正
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2025-4-1 10:28:59 | 显示全部楼层
jackz007 发表于 2025-3-31 23:37
这一句

        的缩进位置错了,正确的代码为:

好的 谢谢大佬,不过有个问题,print缩进在最前面,编辑器模式就显示正常,在交互模式,只有我发的那个同等缩进才能显示成功,不然就报错,这是啥情况
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2025-4-1 14:55:14 | 显示全部楼层
本帖最后由 jackz007 于 2025-4-1 14:57 编辑
一定能行 发表于 2025-4-1 10:28
好的 谢谢大佬,不过有个问题,print缩进在最前面,编辑器模式就显示正常,在交互模式,只有我发的那个同 ...


        交互模式一次只能输入一条语句,for 循环的全部语句块也算单条语句,交互模式下结束 for 循环的方法是输入一个空行,循环就会立即得到执行,这时,再顶格(无缩进)输入 print() 语句,立即就会看到打印结果。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-12 13:16

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表