В этом примере мы установим PH[0]
в 'Ten of Hearts'
и guess
к 'Ten'
«Пока не» ошибка - питон
Список «PH» представляет руку игрока в карточной игре Go Fish. Когда пользователь догадывается о карте, они должны угадать карту, которая соответствует карте в руке. Я написал этот блок кода, чтобы, если пользователь вводит недопустимое предположение (если угадание не находится в PH
, они будут снова запрошены, чтобы ввести новое предположение)
Я чувствую, что у меня возникают проблемы с переменными в массив [guess1, guess2, guess3, guess4]
, но я не уверен.
Когда код выполнен, цикл продолжается вечно. Мне нужно уйти из цикла, чтобы вернуть предположение, чтобы его можно было ввести в следующую функцию.
Если кто-то может помочь мне решить проблему, которую я испытываю.
guess = str(raw_input("Make a guess : "))
guess11 = guess, 'of Hearts'
guess1 = " ".join(guess11)
guess22 = guess, 'of Diamonds'
guess2 = " ".join(guess22)
guess33 = guess, 'of Clubs'
guess3 = " ".join(guess33)
guess44 = guess, 'of Spades'
guess4 = " ".join(guess44)
while PH[0] not in [guess1, guess2, guess3, guess4] :
print "You do not have a card like that in your hand."
guess = str(raw_input("Make another guess : "))
guess11 = guess, 'of Hearts'
guess1 = " ".join(guess11)
guess22 = guess, 'of Diamonds'
guess2 = " ".join(guess22)
guess33 = guess, 'of Clubs'
guess3 = " ".join(guess33)
guess44 = guess, 'of Spades'
guess4 = " ".join(guess44)
return guess
Этот код болит глаза! Узнайте о написании кода [DRY] (http://en.wikipedia.org/wiki/Don't_repeat_yourself). Это сделает вашу жизнь намного проще. – Basic
Он работает для меня, когда я устанавливаю 'PH [0]' '' Десять сердец' и 'угадываем'' 'Десять''. Петля выходит правильно. – interjay
'raw_input' уже строка –