鱼C论坛

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

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

[复制链接]
发表于 2024-12-3 19:49:49 | 显示全部楼层 |阅读模式
3鱼币
原文网址: https://fishc.com.cn/thread-201013-1-1.html
以下为原文粘贴:
def morsecode2(code):
        # 摩斯密码对比表
        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"]
        split_code = code.split(" ")
        result = [c_table[c_table.index(each) + 1] for each in split_code]
        return result

import timeit

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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2024-12-3 19:49:50 | 显示全部楼层    本楼为最佳答案   
你都没有定义 test_code
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

示例修正如下:
def morsecode2(code):
    # 摩斯密码对比表
    c_table = {"....": "H", ".": "E", "-.--": "Y", ".---": "J", "..-": "U", "-..": "D"}
    split_code = code.split(" ")
    result = [c_table[each] for each in split_code if each in c_table]
    return result

import timeit

test_code = ".... . -.-- .--- ..- -.."
print(timeit.timeit("morsecode2(test_code)", setup="from __main__ import morsecode2, test_code"))

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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-22 00:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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