2014-10-20 17 views
1

刚刚写了一个python程序来确定助记符“I before E before except C after”的助记符是多么有用。我在E程序不工作之前

随着输入:

'I before e except when conducting an efficient heist on eight foreign neighbors. I believe my friend has left the receipt for the diet books hidden in the ceiling' 

它会显示:

Number of times the rule helped: 5 
Number of times the rule was broken: 5 

改变了一些事情,我想我改回来,但现在的代码被打破,任何意见将有助于

while True: 

    line = input("Line: ")       
    count = 0          
    h = 0 
    nh = 0 


    words = line.split()        
    for x in range(0, len(words)):     
     word = words[count] 

     if "ie" in word:        
      if "cie" in word:      
       nh += 1 
      else: 
       h +=1 

     if "ei" in word: 
      if "cei" in word: 
       h += 1 
      else: 
       nh += 1 
     else: 
      h += 0 
    count += 1          

    print("Number of times the rule helped:",h)  
    print("Number of times the rule was broken:",nh) 
    print() 
+1

也许x应该做索引,不算? – user3125280 2014-10-20 02:30:58

+0

欢迎来到Stackoverflow。我们不是在这里倾诉你的整个计划,并猜测问题可能是什么。请提供具体信息,说明代码为什么“破碎”。有没有一个测试案例没有解决?如果是这样,给我们所有的细节。 – 2014-10-20 02:30:59

+0

抱歉没有提供足够的信息,我在这里仍然很新。发生了什么事情是我之前发布的输入没有规则的帮助或破坏,从返回答案的意义上来说没有任何回应。 但是,它仍检测较小输入中的规则破坏/跟踪。我不知道为什么或者如何,但我认为我已经打破了for循环或逻辑 – user3699151 2014-10-20 03:07:31

回答

0

你会很好地表达你的测试用例。我不完全明白你想要做什么。

看起来你所需要的只是查看文本中出现了多少次'cie'或'cei'。

在这种情况下:

for i in range(0, len(line)): 

    print("scanning {0}".format(line[i:i+3])) 
    if line[i:i+3].lower() == "cie": 
     nh += 1 
    if line[i:i+3].lower() == "cei": 
     h += 1 
+0

嗯,似乎没有工作。好主意,但它似乎应该工作。我会看看它 – user3699151 2014-10-20 09:32:49

+0

对不起,但像“这似乎没有工作”的评论是没用的。除非你可以给出非常明确的错误反馈等,否则你不会在stackoverflow上找到很多帮助。祝你好运,你的调试工作。 – user3556757 2014-10-20 11:02:31

1

好神我是个白痴。我可能总共花了3个小时左右的时间试图解决这个问题。

for x in range(0, len(words)):     
    word = words[count] 

    if "ie" in word:        
     if "cie" in word:      
      nh += 1 
     else: 
      h +=1 

    if "ei" in word: 
     if "cei" in word: 
      h += 1 
     else: 
      nh += 1 
    count += 1 

任何人都可以发现这与旧代码的相应部分之间的区别?最后“计数+ = 1”只是缩短了一段时间。所有这些小时都浪费了......对不起,如果我在这里浪费别人的时间:|

+1

呵呵,欢迎来到我们的世界:)认真地说,很好的工作坚持下去 - 很多人只是在类似的编码直线时放弃。话虽如此,我认为你甚至不需要'count'-只用'word = words [x]'。 – 2014-10-20 16:47:15