Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 验证列表_Python_List_Python 3.x - Fatal编程技术网

Python 验证列表

Python 验证列表,python,list,python-3.x,Python,List,Python 3.x,我试图通过使用一个列表来验证输入,该列表包含有效输入的字符串,但我似乎无法使其正常工作,有什么帮助吗 choice = ["A","a","B","b"] def main(): test = input() if validate(test): print("Entered a") else: print("did not enter a") def validate(val): try: val = choi

我试图通过使用一个列表来验证输入,该列表包含有效输入的字符串,但我似乎无法使其正常工作,有什么帮助吗

choice = ["A","a","B","b"]
def main():
    test = input()
    if validate(test):
        print("Entered a")
    else:
        print("did not enter a")

def validate(val):
    try: 
        val = choice.index[1]
    except:
        return False
    else:
        return True
main()

这是你想要的吗?这将根据
val
的成员检查输入。如果条目位于VAL中,它将接受该条目

vals = ["a","b","c"]
def main():
    test = input()
    if validate(test):
        print("Valid entry")
    else:
        print("did not enter valid info")
def validate(val):
    for i in vals:
        if val == i:
            return True
    return False
main()

我对你的问题有点困惑,但我希望这能有所帮助。

这就是你想要的吗?这将根据
val
的成员检查输入。如果条目位于VAL中,它将接受该条目

vals = ["a","b","c"]
def main():
    test = input()
    if validate(test):
        print("Valid entry")
    else:
        print("did not enter valid info")
def validate(val):
    for i in vals:
        if val == i:
            return True
    return False
main()

您的问题让我有点困惑,但我希望这能有所帮助。

验证中不需要异常,只需使用
中的
操作符检查列表是否包含元素:

def validate(val):
    if val in choice: # checks if the value is in the list.
        return True
validate()
中不需要else子句,因为函数将返回
None
,其计算结果将为
False


为了更好地执行此操作,只需返回元素(该元素将再次计算为
True
):


验证中不需要异常,只需使用
中的
操作符检查列表是否包含元素:

def validate(val):
    if val in choice: # checks if the value is in the list.
        return True
validate()
中不需要else子句,因为函数将返回
None
,其计算结果将为
False


为了更好地执行此操作,只需返回元素(该元素将再次计算为
True
):


你能试着用下面的方法看看它是否适合你吗

def validate(val):
    if val in choice
         return True
    return False

显式返回
False
以非常清楚函数的作用,您可以不使用该函数

您是否可以尝试使用以下命令,看看它是否适合您

def validate(val):
    if val in choice
         return True
    return False
显式返回
False
是为了非常清楚函数的作用,您可以不使用它

试试这一行

def validate(val):
    return val in choice
你可以这样做:

test = inputFromUser()

print validate(test) and "Entered " + test or "Did not enter a valid value"
试试这一行

def validate(val):
    return val in choice
你可以这样做:

test = inputFromUser()

print validate(test) and "Entered " + test or "Did not enter a valid value"

你是说choice.index[val]?我想应该是
choice.index(val)
(用括号,而不是括号,寻找
val
,而不是赋值给它)。但是那种白痴的bare
except:
(永远不要使用bare-except!)掩盖了这个问题。如果except仅针对
ValueError
,则它不会使用括号掩盖
TypeError
。当然,这仍然是一种毫无意义的测试方式(
在choice中返回val既正确又简单),但这就是原始代码中断的原因。你是指choice.index[val]吗?我怀疑它应该是
choice.index(val)
(使用括号,而不是括号,并查找
val
,而不是分配给它)。但是那种白痴的bare
except:
(永远不要使用bare-except!)掩盖了这个问题。如果except仅针对
ValueError
,则它不会使用括号掩盖
TypeError
。当然,这仍然是一种毫无意义的测试方式(
选择中返回val
正确且更简单),但这就是原始代码中断的原因。是的,谢谢,对不起,我是python新手,所以这可能应该相对简单。谢谢,对不起,我是python新手,所以这可能应该相对简单