【发布时间】:2014-01-24 21:57:52
【问题描述】:
characters ='abcdefghijklmnopqrstuvwxyz '
def monkey():
return ''.join(random.choice(characters) for i in range(5))
def checkif():
checkstring = "seven"
randString = monkey()
count = 1
while(randString != checkstring):
if(randString) == (checkstring):
print(count)
return True
else:
randString = monkey()
count = count + 1
我想生成一个随机字符串并检查该字符串是否等于静态字符串,然后我希望程序继续运行,直到随机生成的字符串等于静态字符串(本例中的“seven”案子)。随机字符串生成工作正常,但我的循环似乎无限运行,而不是在达到条件后停止。谁能帮我正确停止无限循环?
【问题讨论】:
-
这样的字符串有 27^5 = 14348907(~1400 万)个。你书中的“无限期”有多长?我怀疑它比制作“七”的预期时间要短。现在,如果循环在 2800 万次迭代后仍在运行,那么您就可以开始担心了。
-
OP意识到荒谬了吗?
-
请注意,
if (randstring) == (checkstring)永远不会是 True,因为它正上方的while只是检查了相反的情况。但这不是问题的原因。