Моя петля, кажется, перебирает первую букву, а затем ломается, хотя она должна перебирать каждую букву в secretWord, например, код ниже должен печатать «_pp_e», но вместо этого он печатает только «_». Я не понимаю, в чем проблема с этим кодом?для цикла итерации только по первой букве
def getGuessedWord(secretWord, lettersGuessed):
'''
secretWord: string, the word the user is guessing
lettersGuessed: list, what letters have been guessed so far
returns: string, comprised of letters and underscores that represents
what letters in secretWord have been guessed so far.
'''
# FILL IN YOUR CODE HERE...
for letter in secretWord:
if letter in lettersGuessed:
return letter
else:
return '_'
print(getGuessedWord("apple", ['e', 'i', 'k', 'p', 'r', 's']))
Ну, вы «возвращаетесь» от функции на первой итерации. 'return' ** завершает ** функцию, там и тогда, поэтому цикл' for' также не будет продолжен. –
, вы должны создать набор результатов из своего цикла, прежде чем определять свой ответ, так как вы коротко обращаетесь с возвратом, как то, что сказал Мартийн. – Fallenreaper
Для образовательных целей вы также можете использовать для этого список: '. '.join ([x, если x в letterGuessed else _ _ для x в secretWord])' – Jaco