2014-02-06 56 views
3

我是python的全新用戶,我正試圖弄清楚如何驗證用戶輸入。我想要求用戶提交一個DNA序列,並想驗證它是一個DNA序列。可接受的輸入可以有大寫或小寫ATCG和空格,我不確定如何去做。如何驗證python中的用戶輸入

到目前爲止,我可以要求輸入,但不驗證它。

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或空間。

回答

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" 
+0

這很棒!萬分感謝! – scooterdude32

+0

作爲最佳實踐,[sys.exit](http://docs.python.org/2/library/sys.html#sys.exit)可能應該有一個非零的退出代碼參數,因爲程序沒有成功。 – jpmc26

+0

@ jpmc26 - 好點。我更新了我的帖子。 – iCodez