用python编写一个程序(或算法),将一串文本分成奇偶字符

2024-04-25 11:59:16 发布

您现在位置:Python中文网/ 问答频道 /正文

def breakString(str):
    i = 0
    even = []
    odd = []
    for char in str
        if (i%2==0)
            even.push(char)
        else
            odd.push(char)

出于某种原因,这不是在我的python中运行的。你知道吗


Tags: inforifdefpushelseevenodd
2条回答
  • 不要使用“str”作为变量名,它在python中有保留的含义。你知道吗
  • 缩进前用冒号结束子句。你知道吗
  • 使用append而不是push。你知道吗
  • 你不算我,总是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。你也不会归还任何东西。你可以在这里阅读for循环on the 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]

我以数组的形式返回,但你可以做任何事。你知道吗

相关问题 更多 >