我试图保存一个列表上的输入,当函数运行时,它检查字母是否在列表上,如果它是一个新的猜测,它返回True。但我没有成功地保存在变量的猜测。谢谢你的帮助!(我甚至要求函数打印列表,以显示它是否保存猜测,但它没有)
letter_guessed = input("please guess a letter").lower()
old_letters_guessed = [ ]
def check_valid_input(letter_guessed, old_letters_guessed):
"""
this function will check if the the guess is ok
:param letter_guesses: the user's guess
:type letter_guesses: str
:return: True if the guess is complies with the rules and False if not
:rtype: bool
"""
import string
if letter_guessed.isalpha() and len(letter_guessed) == 1 and letter_guessed not in old_letters_guessed :
return(True)
else:
return(False)
old_letters_guessed.append(letter_guessed)
print(old_letters_guessed)
check_valid_input(letter_guessed, old_letters_guessed)
在if/else的子句中都有返回语句-函数在old_letters_guessed.append(...
执行之前返回。您需要将追加语句移动到返回语句之前。
这是一种方法。
is_valid = (letter_guessed.isalpha()) and (len(letter_guessed) == 1) and (letter_guessed not in old_letters_guessed)
if is_valid: old_letters_guessed.append(letter_guessed)
return is_valid
在if else语句本身中返回函数。返回后的任何代码都不能工作。
letter_guessed = input("please guess a letter").lower()
old_letters_guessed = [ ]
def check_valid_input(letter_guessed, old_letters_guessed):
"""
this function will check if the the guess is ok
:param letter_guesses: the user's guess
:type letter_guesses: str
:return: True if the guess is complies with the rules and False if not
:rtype: bool
"""
import string
if letter_guessed.isalpha() and len(letter_guessed) == 1 and letter_guessed not in old_letters_guessed :
old_letters_guessed.append(letter_guessed)
print(old_letters_guessed)
return(True)
else:
print(old_letters_guessed)
return(False)
check_valid_input(letter_guessed, old_letters_guessed)
应该可以。