我应该如何引入要在定义中同时在全局范围内的变量?

问题描述 投票:-1回答:1

我想做两个功能。一个接收名称为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未定义”,同时通过两个函数保持代码相对干净?

python python-2.x
1个回答
0
投票

您可以像这样重新格式化您的代码:

secret_word = 'tracy'
dashes = ""

def get_guess(): # <=== no variable needed as this function will generate a guess based on user input
    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 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编写的吗?

© www.soinside.com 2019 - 2024. All rights reserved.