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;到计算一词的长度。但这会进入一个循环
答案 0 :(得分:4)
你有一个循环while len(keyword) < len(key_phrase):
,其迭代取决于keyword
和key_prase
,但你不会在循环体中更改这些变量,所以一旦输入,循环条件将总是评价为True
,所以你有一个无限循环。
答案 1 :(得分:1)
简而言之,在这个循环中:
while len(keyword) < len(key_phrase)
您永远不会更新或更改keyword
或key_phrase
。由于它们永远不会更新或更改,因此永远不会遇到转义条件