我想做两个功能。一个接收名称为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
未定义”,同时通过两个函数保持代码相对干净?
您可以像这样重新格式化您的代码:
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编写的吗?