Это потому, что у вас нет оператора break, чтобы вытащить вас из l oop, где вы проверяете, правильно ли пользователь угадывает число или нет.
В этом l oop,
while True:
players_guess = raw_input(prompt)
# new if clause to test against quit
if players_guess == quit_text:
if comfirm_quit():
QUIT
else:
continue # that is, do next round of loop
numofguess = numofguess+1
if comnum == int(players_guess):
print('Correct!')
elif comnum > int(players_guess):
print('Too low')
else:
print('Too high')
, даже если пользователь правильно угадывает, ему задают raw_input
, потому что l oop все еще активен. Если вы нажмете Enter, вы получите ValueError
, потому что вы пытаетесь использовать функцию int
в пустой строке. Чтобы избежать этого, измените свой l oop на
while True:
players_guess = raw_input(prompt)
# new if clause to test against quit
if players_guess == quit_text:
if comfirm_quit():
QUIT
else:
continue # that is, do next round of loop
numofguess = numofguess+1
if comnum == int(players_guess):
print('Correct!')
break
elif comnum > int(players_guess):
print('Too low')
else:
print('Too high')
. Есть и другие проблемы с этим кодом. Первое, в то время как l oop должно быть функцией do_guess_round
function