简体   繁体   English

在 python 上保存变量输入

[英]saving inputs on variable on python

im trying to save an input on a list and when the function is running its checking if the letter is on the list, if it is a new guess its return True.我试图将输入保存在列表中,当 function 运行时检查字母是否在列表中,如果是新猜测则返回 True。 but i dont sucess to save the guesses in the variable.但我没有成功将猜测保存在变量中。 thanks for help !感谢帮助 ! (im even ask from the function to print the list to show if its save the guesses but its not) (我什至要求 function 打印列表以显示它是否保存了猜测但不是)

  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)

You have return statement in both clauses of the if/else - the function returns before old_letters_guessed.append(... is executed. You need to move the append statement before the return statements.您在 if/else 的两个子句中都有 return 语句 - function 在执行old_letters_guessed.append(...之前返回。您需要在 return 语句之前移动 append 语句。

Here is one way to do it.这是一种方法。

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

You are returning the function in the if else statement itself.您将在 if else 语句本身中返回 function。 Any code after the return won't work.返回后的任何代码都不起作用。

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)

This should work.这应该工作。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM