def breakString(str):
i = 0
even = []
odd = []
for char in str
if (i%2==0)
even.push(char)
else
odd.push(char)
出于某种原因,这在我的 python 中没有运行。
- 不要使用"str"作为变量名,它在Python中具有保留的含义。
- 在缩进之前用冒号结束子句。
- 使用追加而不是推送。
- 你不算我,它总是 0
考虑到这一点,您最终会得到例如:
even = []
odd = []
def breakString(st):
for char in st:
i = st.count(char)
if (i%2==0):
even.append(char)
else:
odd.append(char)
breakString("aba noun")
print even
print odd
输出:
['a', 'a', 'n', 'n']
['b', ' ', 'o', 'u']
编译器会告诉您语法错误。所以下次,花一些精力来分析它告诉你的内容。
它
不起作用的主要原因是你没有递增i
.你也没有返回任何东西。你可以在python wiki上阅读循环。工作方法可能如下所示:
def breakString(s):
even = []
odd = []
for i in range(len(s)):
if (i % 2 == 0):
even.append(s[i])
else:
odd.append(s[i])
return [even, odd]
我作为数组的数组返回,但你可以做任何事情。