2015-10-12 72 views
2
import sys 
keyword = raw_input("enter a keyword ").lower() 
key_phrase = raw_input("enter a key phrase").lower() 
key_phrase_length = len(key_phrase) 

character_position = [] 
for character in keyword: 
    if character in "abcdefghijklmnopqrstuvwxyz": 
     position = "abcdefghijklmnopqrstuvwxyz".find(character) + 1 
     character_position.append(position) 


cycle = -1 
new_keyword = "" 
if len(keyword) < len(key_phrase): 
    while len(keyword) < len(key_phrase): 

     cycle += 1 
     if cycle >= len(keyword): 
       cycle = 0 
     new_keyword = new_keyword + keyword[cycle] 
     sys.stdout.write(new_keyword[cycle]) 

上面是我的代码,当输入关键字如“cat”和关键短语如“computing”时,代码应该将“cat”的字母打印到计算单词的长度。然而,这个运行到一个循环为什么我的代码会陷入无限循环?

回答

4

你有一个循环while len(keyword) < len(key_phrase):其迭代取决于keywordkey_prase,但你不要在循环体中改变这些变量,所以一旦进入它,循环条件将永远评估为True,所以你有一个无限循环。

1

总之,在这个循环:

while len(keyword) < len(key_phrase) 

你永远不更新或更改任何keywordkey_phrase。由于他们从不更新或更改,逃生条件永远不会被满足