首页 > 解决方案 > 我应该如何着手引入我希望在定义中同时成为全局变量的变量?

问题描述

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

标签: pythonpython-2.x

解决方案


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

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 编写的吗?


推荐阅读