python中的拆分方法错误

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

我现在正在学习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()
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))