python中的拆分方法错误
我现在正在学习python,作为练习,我试图创建一个程序,根据caesar移位密码对字符串进行编码或解码,其中密码的移位可以由用户输入。但是,当我运行它时,我得到了错误:python中的拆分方法错误,python,Python,我现在正在学习python,作为练习,我试图创建一个程序,根据caesar移位密码对字符串进行编码或解码,其中密码的移位可以由用户输入。但是,当我运行它时,我得到了错误: Traceback (most recent call last): File "exercises.py", line 52, in <module> print e(input) File "exercises.py", line 10, in e slist = s.split() A
Traceback (most recent call last):
File "exercises.py", line 52, in <module>
print e(input)
File "exercises.py", line 10, in e
slist = s.split()
AttributeError: 'builtin_function_or_method' object has no attribute 'split'.
您需要一个字符串来应用。拆分 将输入转换为如下字符串:
if ed == "e":
print e(str(input))
elif ed == "d":
print d(str(input))
您可以使用
input
调用函数e
或d
,这是一个内置函数(没有字符串)。在此之前要求输入一个字符串,并将该字符串交给函数。出现错误的原因是您正在向函数传递输入input
是python中的内置函数。由于您没有重新定义输入
,实际函数将传递给您的函数e
和d
。不能拆分内置函数。您还需要向函数传递一个字符串
看起来您甚至不需要向函数传递任何内容。尝试将split
移动到input1
行之后,并拆分input1
而不是s
。这将比你目前所做的更有意义
另一个需要注意的是函数d
<代码>字母表。索引(x)-shift
永远不会大于25
,但它可以小于0
。您可能需要对此进行更改。input
未在您发布的脚本中定义,因此e(input)
(然后在输入时拆分)可能不会执行您想要的操作。我会在你的e
函数顶部添加print s,type(s)
,它应该提供有用的信息。我还更改了变量输入的名称,使其不是内置的,并在函数外部定义了变量hanks!你对我的功能d的建议很有帮助。
if ed == "e":
print e(str(input))
elif ed == "d":
print d(str(input))