バイオインフォについて勉強していて、遺伝子の有無を判定するコードを作っています。
下記のリストに於いて、一番初めの要素がATG、かつ一番最後の要素がTAA, TGA, TAGのいずれかの場合に限り「aaa」と出力されるようにしたいです。
しかし、下記の状態では一番最後の要素はTTAでありながら、なぜ3行目の右辺のand以降がTrue判定されるのかわかりません。
お知恵をお貸しいただけますと幸いです。よろしくお願いいたします。
python
1l = ['ATG', 'AGA', 'AGC', 'TGT', 'GCA', 'AAT', 'GCA', 'TTA'] 2if (l[0] =="ATG" and (l[-1] == "TAA" or "TGA" or "TAG")): 3 print("aaa") 4else: 5 print("aa") 6#「aa」と出力される筈が、「aaa」と出力されてしまう
試したこと
2行目のTGAとTAGにTAAと同じような式を繋げたところ、aaと返ってきました。
if (l[0] =="ATG" and (l[-1] == "TAA" or l[-1] == "TGA" or l[-1] == "TAG")): print("aaa") else: print("aa")
補足情報(FW/ツールのバージョンなど)
iOS10.14.6 Python3.7.4
回答3件
あなたの回答
tips
プレビュー