我是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或空间。
答案 0 :(得分:4)
您可以使用all
,str.lower
和generator 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