Как мне начать вводить переменные, которые я хотел бы включить в определение и быть глобальными одновременно? - PullRequest
0 голосов
/ 31 октября 2019

Я хочу сделать две функции. Один получает вход с именем get_guess, а другой update_dashes, вычисляет индексы, при которых эта буква появляется в заранее определенном слове, и помещает тире / букву в строку.

Вот мой код:

secret_word = 'tracy'
dashes = ""
def get_guess(guess):
    while True:
        if len(guess) != 1:
            print "Your guess must be exactly one character!"
        elif not guess.islower():
            print "Your guess must be a lowercase letter!"
        else:
            break
        guess = input("Guess: ")
    return guess

def update_dashes(secret_word, dashes, guess):
    for i in range(len(secret_word)):
        if secret_word[i] == guess:
            dashes += guess
        else:
            dashes += "-"


while True:
    update_dashes(secret_word, dashes, guess)
    print dashes
    if get_guess(guess) in secret_word:
        print "That letter is in the secret word!"
    else:
        print "That letter is not in the secret word!"

Как я могу настроить вызов этих функций так, чтобы я не получил "guess не определен", сохраняя при этом мой код относительноочистить с помощью двух функций?

1 Ответ

0 голосов
/ 31 октября 2019

Вы можете немного переформатировать свой код следующим образом:

secret_word = 'tracy'
dashes = ""

def get_guess(): # <=== no variable needed as this function will generate a guess based on user input
    while True:
        guess = input("Guess: ")
        if len(guess) != 1:
            print "Your guess must be exactly one character!"
        elif not guess.islower():
            print "Your guess must be a lowercase letter!"
        else:
            break
    return guess

def update_dashes(secret_word, dashes, guess):
    for letter in secret_word:
        if letter == guess:
            dashes += guess
        else:
            dashes += "-"
     return dashes  #<======= Return you dashes updated


while True:
    dashes = update_dashes(secret_word, dashes, guess)
    print dashes
    guess = get_guess()
    if guess in secret_word:
        print "That letter is in the secret word!"
    else:
        print "That letter is not in the secret word!"

Предполагается ли, что ваш код написан для Python 2?

...