首页 > 解决方案 > 在python上保存变量的输入

问题描述

我试图将输入保存在列表中,并且当函数运行时检查字母是否在列表中,如果是新猜测,则返回 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)

标签: python

解决方案


if/else 的两个子句中都有 return 语句- 函数在old_letters_guessed.append(...执行之前返回。您需要将 append 语句移到 return 语句之前。

这是一种方法。

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

推荐阅读