【问题标题】:error messages in cipher code密码中的错误信息
【发布时间】:2013-03-04 23:09:39
【问题描述】:

我现在正在用 python 做一个密码,我需要一些关于如何在另一个函数中调用另一个外部函数的帮助

这是外部函数...到目前为止,它工作 100% 正确!

def buildCoder(shift):
    import string
    import random
    from itertools import chain, islice
    from string import ascii_uppercase, ascii_lowercase   
    def _helper(letters):
        return dict(zip(letters, chain(islice(letters, shift, None), letters)))
    d = _helper(ascii_uppercase)
    d.update(_helper(ascii_lowercase))
    return d   

这是新功能:

def applyCoder(text, coder):
    buildCoder(int(n))
    coder = buildCoder(int(n))
    newtext = string.translate(text, buildCoder(int(n)))
    return newtext

代码有问题 - 下面是一些测试用例 测试用例

>>> applyCoder("Hello, world!", buildCoder(3))
'Khoor, zruog!'
>>> applyCoder("Khoor, zruog!", buildCoder(23))
'Hello, world!'

当这样的测试完成后,上面的结果应该会弹出......

但是,每当我调用上述函数 applyCoder("string",buildCoder(n)) 时,我都会收到以下错误消息,它表示 n 未定义,但如果我调用该函数 - 例如 applyCoder("drink milk love life",buildCoder(5)),它会给出以下输出:

  Traceback (most recent call last):
     File "<pyshell#24>", line 1, in <module>
     applyCoder("drink milk love life", buildCoder(5))
  File "C:\ProblemSet5\ProblemSet5\ps5_encryption.py", line 143, in applyCoder
    buildCoder(int(n))
NameError: global name 'n' is not defined

那么我将如何最终修复此功能 - def applyCoder(text, coder):

【问题讨论】:

  • 请尝试在没有太多粗体文本的情况下格式化您的帖子...并添加语言标签(即,而不是“key”)
  • 另外,请给出一个能传达问题的标题。
  • 我对其进行了格式化...并更改了标题
  • 有人不能帮我调用这个函数吗? def applyCoder(text, coder): 需要帮助!请尽快帮助...谢谢一百万!
  • 哟呼...有人在家吗?

标签: python string key translate encryption


【解决方案1】:

n 指的是全局 n。

你在你的 pythonshell 中写了这样的东西:

n = ...

def applyCoder(text, coder):
    buildCoder(int(n))
    coder = buildCoder(int(n))
    newtext = string.translate(text, buildCoder(int(n)))
    return newtext

n = ... # or this

但这应该是这样的:

def applyCoder(text, coder):
    newtext = string.translate(text, coder)
    return newtext

有帮助吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多