我对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或Space。
您可以使用 all
, str.lower
和生成器表达式:
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"
也(类似于Python,如何检查字符串是否仅包含某些字符?):
>>> import re
>>> def special_match(strg, search=re.compile(r'[^atcgATCGs]').search):
... return bool(search(strg))
>>> if (special_match("atcF")):
... print "Invalid input"
...
>>> Invalid input