我有一个问题正在处理。问题的目标是使用字符串占位符i
。如果i
是偶数占位符,请将i
处的字母替换为i -1
处的字母。如果i
占位符为奇数,则将字母i
替换为i +1
处的字母。在
以下是我目前为止的代码:
def easyCrypto (s):
for i in range (0,len(s)-1):
if i % 2 == 0:
str(s).replace(i,((i-1)))
if i % 2 != 0:
str(s).replace(i,((i+2)))
print (s)
我的错误:
^{pr2}$更新!!在
基于答案的新代码:
def easyCrypto (s):
for i in range (0,len(s)-1):
if i % 2 == 0:
s = str(s).replace(s(i),(s(i-1)))
else:
s = s.replace(s(i), s(i + 1))
print (s)
但是我仍然有以下错误:
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
easyCrypto('abc')
File "C:/Python/cjakobhomework7.py", line 4, in easyCrypto
s = str(s).replace(s(i),(s(i-1)))
TypeError: 'str' object is not callable
有什么想法吗?谢谢你
使用
s[i]
而不是s(i)
,其他索引也是如此。在这里有两件事:
str.replace
不会自动对其参数进行字符串化。您需要手动将它们转换为字符串。记住:“显式比隐式好。”str.replace
不能正常工作,因为字符串在Python中是不可变的。您需要将s
重新分配给str.replace
返回的新字符串对象。你的代码应该是:
此外,还可以将
^{pr2}$if i % 2 != 0:
替换为else:
,因为第二个if语句的条件只有在第一个if语句为false时才能为true:关于您编辑的问题,您试图通过在字符串
s
后面加上括号来调用它作为一个函数。您需要使用方括号来索引字符串:在你的情况下,应该是:
一般来说,括号
(...)
用于调用函数,而方括号[...]
用于索引序列/容器。在相关问题 更多 >
编程相关推荐