我想正确循环并破坏此代码。这可以很好地循环,但不会正确终止
from random import randint
import pyttsx
tries = 10
while tries:
try:
def random_with_N_digits(n):
range_start = 10**(n-1)
range_end = (10**n)-1
return randint(range_start, range_end)
randoms = random_with_N_digits(3)
def speech_recog():
engine = pyttsx.init()
engine.say(randoms)
engine.runAndWait()
speech_recog()
def guesses():
my_guess = raw_input("Enter ")
count_correct = 0
count_wrong = 0
if my_guess == randoms:
print("correct")
count_correct +=1
else:
count_wrong +=1
except ValueError:
break
guesses()
print("You got right", count_correct)
print("You got wrong", count_wrong)
#print("Your correct ratio is", count_correct / count_wrong)
print("While loop has exited")
提前感谢您的帮助
答案 0 :(得分:0)
您的try... except
超出while
循环,这可能是break
代码不会破坏while循环的原因。
你的函数的定义应该在循环之外。循环的目的是调用这些函数。
如果您知道执行前的迭代次数并且它不依赖于程序状态,为什么不使用for循环? 这将帮助您避免无限循环。
请尽量避免使用try...except
机制作为流控制结构。如果必须,只有当您需要特殊的错误处理案例时才 。
答案 1 :(得分:0)
您没有更新tries
变量,因此除了ValueError
之外,为什么您认为循环应该结束?