如何在python中验证用户输入

时间:2014-02-06 22:25:22

标签: python string validation user-input

我是python的新手,我正在试图弄清楚如何验证用户输入。我想要求用户提交DNA序列并想要验证它是DNA序列。可接受的输入可以有大写或小写的ATCG和空格,我不确定如何做到这一点。

到目前为止,我可以要求输入但不验证它。

import sys
Var1 = raw_input("Enter Sequence 1:")

然后我想做类似的事情:

if Var1 != ATCG (somehow put 'characters that match ATCG or space)
    print "Please input valid DNA sequence"
    sys.exit() (to have it close the program)

有任何帮助吗?我觉得这应该很简单,但我不知道如何指定它可以是任何ATCG,atcg或空间。

2 个答案:

答案 0 :(得分:4)

您可以使用allstr.lowergenerator expression

if not all(x in "agct " for x in Var1.lower()):
    print "Please input valid DNA sequence"
    sys.exit(1) 

在上面的代码中,如果Var1中的任何字符不是以下字符之一,则会运行最后两行:

"A", "T", "C", "G", " ", "a", "t", "c", "g"

答案 1 :(得分:1)

另外(类似于In Python, how to check if a string only contains certain characters?):

>>> import re
>>> def special_match(strg, search=re.compile(r'[^atcgATCG\s]').search):
...   return bool(search(strg))
>>> if (special_match("atcF")):
...   print "Invalid input"
...
>>> Invalid input