在Python中尝试使用ascii_lowercase时,出现NameError:名称 'string' 未定义

编程语言 2026-07-07

我在做一个小型个人项目,需要实现一个简单的替换密码解码器(类似Atbash密码)。该函数应对大小写字母分别进行字母表逆置,同时保持数字和特殊字符不变。还需要验证输入是否为字符串。

下面是我写的实现:

# My substitution cipher decoder function
def decode(string_):
    # Validate input type
    if not isinstance(string_, str):
        return "Input is not a string"

    abc_lower = string.ascii_lowercase
    abc_upper = string.ascii_uppercase

    rev_lower = abc_lower[::-1]
    rev_upper = abc_upper[::-1]

    translation_table = str.maketrans(
        abc_lower + abc_upper,
        rev_lower + rev_upper
    )
    return string_.translate(translation_table)

然而,当我尝试运行测试用例时(例如,传入 "yvvi",它应该映射到 "beer"),执行会给出如下回溯信息:

Traceback (most recent call last):
  File "main.py", line 15, in <module>
    print(decode("yvvi"))
  File "main.py", line 7, in decode
    abc_lower = string.ascii_lowercase
NameError: name 'string' is not defined

我期望 string.ascii_lowercase 能原生提供,因为它属于Python的标准能力。为什么会得到这个 NameError,以及我该如何修正,使我的翻译表能够正确工作?

解决方案

string 是标准库中的一个模块。你需要在程序开头对它进行导入:

import string
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章