Я работаю над проблемой часами и не могу понять, почему она не работает. Мой код в основном закончен, за исключением одной ошибки, от которой я не могу избавиться. Проблема связана с введением в курс MIT на Python по edx. Задача проблемы 4 Задача 6.вход python неправильно запоминает прошлые входы
uinput = -1
hand = -1
while True:
uinput = input('Enter n to deal a new hand, r to replay the last hand, or e to end game:')
if uinput == 'n':
hand = dealHand(HAND_SIZE)
playHand(hand, wordList, HAND_SIZE)
elif uinput == 'r' and hand == -1:
print('You have not played a hand yet. Please play a new hand first!')
elif uinput == 'r' and hand != -1:
playHand(hand, wordList, HAND_SIZE)
elif uinput not in ('n', 'r', 'e'):
print("Invalid command.")
playGame(wordList)
else:
break
print('')
Это код, который он называет другими функциями, но я не думаю, что это так важно. Проблема в том, что когда я нажимаю 'е', она должна проваливаться до перерыва и выйти из цикла. Он делает это в первый раз, когда я нажимаю 'e', но если я нажимаю любой другой ключ до этого, он увеличивается, и мне нужно нажать 'e', чтобы много раз, чтобы он действительно сломался. Например, если я дважды нажимаю «x», прежде чем нажать «e», мне нужно будет нажать «e» три раза в общей сложности, чтобы достичь перерыва. Например. xxeee break. При попытке отладки я видел, что он даже изменяет значение uinput на «x», как будто он освобождает стек или что-то в этом роде. Кто-нибудь знает, почему это происходит?
Эта функция называется playHand()? Если вы повторно вызовете playHand(), он начнет складываться, требуя разбить каждый из стека цикла. Если вы удалите вызовы playHand, dealHand или playGame, вы увидите, что ваш if/elif/else работает нормально. – ooknosi
эта функция playGame() и im call dealHand() и playHand(). Мне нужно называть эти функции для работы, нет другого пути? спецификации для проблемы также требуют, чтобы эти функции вызывались – dmnte
Удаление вызовов playHand, dealHand и playGame является частью процесса отладки, чтобы проверить, работает ли ваш код if/else самостоятельно. Вы можете добавлять обратные вызовы один за другим, чтобы увидеть, вызывает ли один из вызовов функции вашу ошибку. – ooknosi