Python解决方案

时间:2014-09-28 21:42:31

标签: python string char

我试图一次删除一个字符,直到字符串中的等号(等式)为止。

   def solutions(expression):
        positionOfEqualSign = expression.find("=")
        for i in range(0, len(expression)):

            for exp in range(i, positionOfEqualSign):
                if expression[i].isdigit():
                    print(expression[:i] + expression[i+1:])

例如,如果我将其作为solutions('1+2=2+1')运行,我应该只获得2个可能的解决方案:

+2=2+1
1+=2+1

但我得到了:

+1=2+1
+1=2+1
+1=2+1
1+=2+1

为什么输出4种不同的可能解决方案,其中3种相同?我究竟做错了什么? 附:忽略表达式的第二部分。

2 个答案:

答案 0 :(得分:2)

这就是诀窍:

def solutions(s):
    for i,c in enumerate(s):
        if c=='=':
            break
        elif c.isdigit() :
            print s[:i]+s[i+1:]

但是从一般意义上说,我不知道什么是好事。

答案 1 :(得分:0)

好的我改了一下:

def solve(expression):
    positionOfEqualSign = expression.find("=")
    for i in range(0, len(expression)):

        if expression[i] == '=':
           break
        elif expression[i].isdigit():
           print(expression[:i] + expression[i+1:])