鱼C论坛

 找回密码
 立即注册
查看: 362|回复: 2

[已解决]字典与列表大比拼中代码运行问题

[复制链接]
发表于 2024-12-3 19:49:49 | 显示全部楼层 |阅读模式
3鱼币
原文网址: https://fishc.com.cn/thread-201013-1-1.html
以下为原文粘贴:

  1. def morsecode2(code):
  2.         # 摩斯密码对比表
  3.         c_table = [".-", "A", "-...", "B", "-.-.", "C", "-..", "D",
  4.                    ".", "E", "..-.", "F", "--.", "G", "....", "H",
  5.                    "..", "I", ".---", "J", "-.-", "K", ".-..", "L",
  6.                    "--", "M", "-.", "N", "---", "O", ".--.", "P",
  7.                    "--.-", "Q", ".-.", "R", "...", "S", "-", "T",
  8.                    "..-", "U", "...-", "V", ".--", "W", "-..-", "X",
  9.                    "-.--", "Y", "--..", "Z", ".----", "1", "..---", "2",
  10.                    "...--", "3", "....-", "4", ".....", "5", "-....", "6",
  11.                    "--...", "7", "---..", "8", "----.", "9", "-----", "0"]
  12.         split_code = code.split(" ")
  13.         result = [c_table[c_table.index(each) + 1] for each in split_code]
  14.         return result

  15. import timeit

  16. timeit.timeit("morsecode2(test_code)", setup="from __main__ import morsecode2, test_code")
复制代码

使用的python版本:3.11.1
报错如下:
timeit.timeit("morsecode2(test_code)", setup="from __main__ import morsecode2, test_code")
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    timeit.timeit("morsecode2(test_code)", setup="from __main__ import morsecode2, test_code")
  File "C:\Users\2023x's\AppData\Local\Programs\Python\Python311\Lib\timeit.py", line 234, in timeit
    return Timer(stmt, setup, timer, globals).timeit(number)
  File "C:\Users\2023x's\AppData\Local\Programs\Python\Python311\Lib\timeit.py", line 178, in timeit
    timing = self.inner(it, self.timer)
  File "<timeit-src>", line 3, in inner
ImportError: cannot import name 'test_code' from '__main__' (unknown location)
最佳答案
2024-12-3 19:49:50
你都没有定义 test_code

最佳答案

查看完整内容

你都没有定义 test_code
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-12-3 19:49:50 | 显示全部楼层    本楼为最佳答案   
你都没有定义 test_code
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2024-12-3 19:54:25 | 显示全部楼层
鱼油,你的代码报错是因为缺少了`test_code`变量的定义。`timeit`模块尝试从`__main__`中导入`test_code`,但没有找到相应的变量。你需要在代码中定义`test_code`并填入你想要测试的摩斯密码字符串。

示例修正如下:

  1. def morsecode2(code):
  2.     # 摩斯密码对比表
  3.     c_table = {"....": "H", ".": "E", "-.--": "Y", ".---": "J", "..-": "U", "-..": "D"}
  4.     split_code = code.split(" ")
  5.     result = [c_table[each] for each in split_code if each in c_table]
  6.     return result

  7. import timeit

  8. test_code = ".... . -.-- .--- ..- -.."
  9. print(timeit.timeit("morsecode2(test_code)", setup="from __main__ import morsecode2, test_code"))
复制代码


在这个示例中,我定义了一个基本的摩斯密码表`c_table`,并添加了`test_code`变量以便能够正常运行`timeit`的测试。你可以根据需要调整`c_table`来进行完整的摩斯密码翻译。如果有其他问题,请随时询问!

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-5-7 15:54

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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