密码cod中的错误消息

2024-07-03 06:24:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在正在用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   

新功能如下:

^{pr2}$

代码有问题-下面是几个测试用例 测试用例

>>> 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):?在


Tags: 函数fromimporthelperchainstringshiftdef
1条回答
网友
1楼 · 发布于 2024-07-03 06:24:20

n表示全局n

你在你的Python身上写了这样的话:

n = ...

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

n = ... # or this

但这应该是这样的:

^{pr2}$

有帮助吗?在

相关问题 更多 >