как вернуть строку из цикла for вместо распечатки одного за другим - PullRequest
0 голосов
/ 28 мая 2019

Я пытаюсь сделать так, чтобы цикл for возвращал строку из целого слова с тире или каждой буквой в зависимости от предположения_летки вместо распечатывания каждой буквы одна за другой для моей игры в палач.

Я попытался напечатать букву в виде строки, вернуть букву, затем установить переменную для этой функции, а затем распечатать переменную.

import random

words = ['apple','python','parent']
def randomword(words):
  return random.choice(words)
chosenword = randomword(words)
tries = 10


guess_letters = []
def dashshow(guess_letters):
  for letter in chosenword:
    if letter in guess_letters:
      return str(letter)
      string_letter = dashshow(guess_letters)
      print(string_Letter)
    else: 
      return '-'
      dash_letter = dashshow(guess_letters)
      print(dash_letter)


def playgame(tries):
  while  tries != 0 and "_" in chosenword:
    print(f"You have {tries} tries left")
    guess = str(input("Guess a letter of the word")).lower()
    guess_letters.append(guess)
    if guess in chosenword:
      print("You got a letter correct!")
      turns -= 1
    else: 
      print("That letter is not in the word")
      turns -= 1


playgame(tries)

Я думал, что это выведет строку с тире или буквами в зависимости от списка guessed_letters, но ничего не печатает.

1 Ответ

0 голосов
/ 28 мая 2019

вот как вы можете.просто измените, как вам нужно. Кроме того, вы можете сравнить свой код с этим.чтобы найти ошибку.

import random

words = ['apple','python','parent']
def randomword(words):
    return random.choice(words)
chosenword = randomword(words)
print (chosenword) #this is random word you can delete this line.
tries = 10

guess_letters = []

def dashshow(guess_letter):
    guess_letters.append(guess_letter)
    print(guess_letters) # just to debug you can remove.
    if len(guess_letters) == len(chosenword):
        print("You Won Dear!")
        exit()

def playgame(tries):
  while tries != 0 :
    print(f"You have {tries} tries left")
    guess = str(input("Guess a letter of the word:> ")).lower()
    if any(guess in s for s in chosenword):
      print("You got a letter correct!")
      dashshow(guess)
      tries -= 1
    else:
      print("That letter is not in the word")
      tries -= 1


playgame(tries)
...