Есть три способа решения этой проблемы.
Во-первых, нет причин, по которым вам нужно распечатывать символы один за другим, когда вы их найдете. Вместо этого скопируйте их в list
(или, что еще лучше, yield
их), затем join
результат и напечатайте его в конце.
Например:
def getGuessedWordd(secretWord, lettersGuessed):
lga = "".join(lettersGuessed)
swa = "".join(secretWord)
jihadi = str()
jihad=" "
result = []
for c in swa:
if c in lga:
result.append(c)
if c not in lga:
result.append("_")
print "".join(result)
Во-вторых, если вы должны напечатать их, как вы их найдете, вы не можете использовать print
. Используйте sys.stdout.write
.
В-третьих, если вы можете перейти на Python 3, сделайте это, а затем вы можете использовать print
.
Несколько других способов, вы можете улучшить этот код:
- Там нет необходимости для
lga
и swa
. Если lettersGuessed
и secretWord
уже являются строками, "".join(lettersGuessed)
точно такой же, как lettersGuessed
. Но, что еще более важно, даже если бы lettersGuessed
были совершенно другой последовательностью символов, это не имело бы значения, потому что единственное, что вы делали с ними, - это for
и in
.
- Вы определяете две переменные, которые вы никогда не используете,
jihad
и jihadi
.
- Нет причин для использования
str()
; это то же самое, что только ""
.
- Нет причин писать два заявления
if
с совершенно противоположными условиями; просто используйте else
.
Таким образом, мы можем упростить все дело много:
def getGuessedWordd(secretWord, lettersGuessed):
result = []
for c in secretWord:
if c in lettersGuessed:
result.append(c)
else:
result.append("_")
print "".join(result)
После того, как вы сделаете это, то очевидно, что цикл идентичен списку понимания:
def getGuessedWordd(secretWord, lettersGuessed):
result = [c if c in lettersGuessed else '_' for c in secretWord]
print "".join(result)
его для питона .... –
def getGuessedWordd (secretWord, lettersGuessed): lga = "" .join (lettersGuessed) swa = "".присоединиться (secretWord) джихадисты = Str() джихад =»" для с в SWA: если с в LGA: печать с если с не в LGA: печати „_“ –
Как вы видите значение распечатать как «яблоко»? Этот код определенно будет печатать только один символ в строке. Если вы не дадите нам код и вывод, которые действительно идут вместе, мы не можем сказать вам, как это исправить. – abarnert