Python 使用“编解码器”模块定义函数时出现问题 我正在尝试编写一个简单的Rot13编码器/解码器,它接受一个字符串,并使用编解码器模块对其进行编码/解码。我试图使用以下代码定义一个函数:codecs.encode'rot13_text','rot13'
在函数外使用编解码器模块没有问题。当我尝试使用codecs.encoderot13_text“rot_13”定义函数时,我收到一个NameError 到目前为止,我尝试了以下代码的许多变体:Python 使用“编解码器”模块定义函数时出现问题 我正在尝试编写一个简单的Rot13编码器/解码器,它接受一个字符串,并使用编解码器模块对其进行编码/解码。我试图使用以下代码定义一个函数:codecs.encode'rot13_text','rot13',python,python-3.x,encode,codec,rot13,Python,Python 3.x,Encode,Codec,Rot13,在函数外使用编解码器模块没有问题。当我尝试使用codecs.encoderot13_text“rot_13”定义函数时,我收到一个NameError 到目前为止,我尝试了以下代码的许多变体: import codecs def rot13_encoder(): rot13_text = input("Type the text to be encoded: ") codecs.encode(rot13_text, 'rot_13') print(ro
import codecs
def rot13_encoder():
rot13_text = input("Type the text to be encoded: ")
codecs.encode(rot13_text, 'rot_13')
print(rot13_text)
终端输出
您似乎正在使用Python2.7或更早版本
import codecs
def rot13_encoder(in_string):
return codecs.encode(in_string, 'rot_13')
in_string = raw_input('Type the text to be encoded: ')
print(rot13_encoder(in_string))
在这种情况下,您应该使用原始输入。。。没有输入,没有内置的rot_13编码器/解码器。你是如何注册你的编解码器的?@AKX:有一个内置的rot_13编解码器,至少在一些python版本中是这样。另外,hi:OP已经用python-3.x标记了他们的问题,所以我假设这就是他们正在使用的。你好你的代码对我有效,没有任何错误。我正在使用python 3.7.3。@AKX:它在python-2.x和python-3.x中都存在;我不确定它是什么时候被引入2.x的,但在3.2之前的3.x版本中它显然是缺失的。我喜欢你这样做的方式。非常感谢您的更正。我感谢你的迅速反应。现在一切正常!非常感谢你
import codecs
def rot13_encoder(in_string):
return codecs.encode(in_string, 'rot_13')
in_string = raw_input('Type the text to be encoded: ')
print(rot13_encoder(in_string))