为什么我的代码会遇到无限循环?

时间:2015-10-12 20:01:31

标签: python-2.7 loops

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])

上面是我的代码,当输入&#34; cat&#34;等关键字,以及&#34;计算&#34;等关键短语时,代码应该打印&#34;的字母。猫&#34;到计算一词的长度。但这会进入一个循环

2 个答案:

答案 0 :(得分:4)

你有一个循环while len(keyword) < len(key_phrase):,其迭代取决于keywordkey_prase,但你不会在循环体中更改这些变量,所以一旦输入,循环条件将总是评价为True,所以你有一个无限循环。

答案 1 :(得分:1)

简而言之,在这个循环中:

while len(keyword) < len(key_phrase)

您永远不会更新或更改keywordkey_phrase。由于它们永远不会更新或更改,因此永远不会遇到转义条件