该程序将加密消息。它将是替换加密消息的凯撒版本。 它会将字母移动5。
from string import *
original = raw_input("Enter your string: ") # prompts user for their desired string
def sub(input, x):
alpha = string.ascii_lowercase
newAlpha = alpha[x:] + alpha[:x]
i = string.maketrans(alpha, newAlpha)
return input.translate(i)
print sub(original, 5)
我不确定为什么会有
NameError: global name 'string' is not defined
答案 0 :(得分:2)
使用import string
代替from string import *
来兼容。{
sub
功能与您的导入方法。
答案 1 :(得分:1)
您正在使用from string import *
从字符串模块导入所有内容,然后再次在string
和string.maketrans
调用string.ascii_lowercase
顶级模块
只需使用maketrans(alpha, newAlpha)
和ascii_lowercase
理想情况下,从模块导入所有内容并不是一个好主意和最佳实践。你是混乱的命名空间。只需导入您需要的或导入高级模块
例如
from string import maketrans,ascii_lowercase
然后使用
i = maketrans(alpha, newAlpha)
alpha = ascii_lowercase
或
import string
然后使用
i = string.maketrans(alpha, newAlpha)
alpha = string.ascii_lowercase