在Python中尝试使用ascii_lowercase时,出现NameError:名称 'string' 未定义
我在做一个小型个人项目,需要实现一个简单的替换密码解码器(类似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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。