我已經開始了生物信息學教學平臺Roaslind。我正在嘗試解決第一個問題。這是我已經結束的代碼:在if語句中設置變量
#!/usr/bin/python -tt
def count_nuc():
'''Usage: count_nuc()'''
s = raw_input('Enter nucleotide string: ')
if s.isalpha():
if len(s) < 1000:
for letter in s:
if letter.upper() == 'A':
a = s.count('A')
elif letter.upper() == 'C':
c = s.count('C')
elif letter.upper() == 'G':
g = s.count('G')
elif letter.upper() == 'T':
t = s.count('T')
else:
print('Error')
print '%d %d %d %d' % (a, c, g, t)
else:
print('String must be 1000 nucleotides or less.')
count_nuc()
else:
print('String must of nucleotides must only contain alphabetic characters.')
count_nuc()
它工作正常。大多。我遇到的問題有點愚蠢。我使用字符串的count方法來計算特定類型的核苷酸數量,然後將該數字分配給我的變量。然而,如果沒有這樣的核苷酸存在(即,我給它一個字符串像'ATGTTT',那麼我的變量'c'永遠不會被定義和打印語句barfs。我已經考慮過這個,沒有我能想到的讓我得到我曾想過在打印出來之前檢查變量是否存在,但這對我來說似乎很笨拙,我不確定這是否會被認爲是適當的編碼禮儀。
注意,你指望*所有* A的爲字符串中的每個* A,這是相當浪費的。 –