2017-02-11 9 views
0

Итак, моя проблема с моим кодом заключается в том, что, хотя я и ввел правильно угаданное слово, мой код по-прежнему читает его как неправильный; поэтому, попросит меня повторить попытку. Как мне выйти из этого цикла? Ценить это.Как выйти из моего цикла while

import random 

count = 1 
word = ['orange' , 'apple' , 'chicken' , 'python' , 'zynga'] #original list 
randomWord = list(random.choice(word)) #defining randomWord to make sure random 
choice jumbled = "" 
length = len(randomWord) 

for wordLoop in range(length): 

    randomLetter = random.choice(randomWord) 
    randomWord.remove(randomLetter) 
    jumbled = jumbled + randomLetter 

print("The jumbled word is:", jumbled) 
guess = input("Please enter your guess: ").strip().lower() 

while guess != randomWord: 
     print("Try again.") 
     guess = input("Please enter your guess: ").strip().lower() 
     count += 1 
     if guess == randomWord: 
     print("You got it!") 
     print("Number of guesses it took to get the right answer: ", count) 
+2

break существует петля – Nullman

+0

Как это может быть дубликат вопроса о цикле for, когда этот вопрос здесь о цикле while? Более того, этот вопрос заключается не только в том, чтобы выйти из цикла while. Это должно быть что-то вроде «Почему мое условие всегда оценивает истину». – shove

+0

@shove вы можете проголосовать за повторное открытие. Итоговый обзор был https://stackoverflow.com/review/close/15181216 –

ответ

0
randomWord.remove(randomLetter) 

Эта строка удаляет каждую букву из переменной. вы можете использовать:

randomWord2 = randomWord.copy() 
for wordLoop in range(length): 
    randomLetter = random.choice(randomWord2) 
    randomWord2.remove(randomLetter) 
    jumbled = jumbled + randomLetter 

Это скопирует вашу переменную. Если вы этого не сделаете, ваш результат будет двумя именами для одной и той же переменной.

А вы сравните список со строкой попробуйте вместо этого:

while guess != ''.join(randomWord): 

Это превратит ваш список обратно в строку.