s=input('Please input the Gene String:\r\n')
endsplit=['TAG','TAA','TGA']
if 'ATG' in s:
for i in s.split('ATG'):
for j in endsplit:
if j in i:
print(i.split(j)[0], end='\t')
else:
print('no gene is found')
提供Python查找基因的思路,期望对你有所帮助
测试截图:
代码实现如下:
//2022.10.18 11:42 Code_流苏
import java.util.Date;
import java.util.Scanner;
import javax.swing.*;
public class demo{
//找出基因
public static void main(String[]args){
Scanner input = new Scanner(System.in);
System.out.print("Enter a genome string : ");
String s = input.nextLine();
int index = 0;
int newindex = 0;
boolean flagForFirst = true;//是否有基因存在判断标志
//基因存在判断
while(true){
index = s.indexOf("ATG",newindex);
//如果找不到或超出字符串范围结束判断
if(!(index < s.length() - 2 && index >= 0)){
if(flagForFirst){
System.out.println("no gene is found!");
break;
}
else
break;
}
//将三个字符组合成基因
StringBuilder sb = new StringBuilder();
sb.append(s.charAt(index+3));
sb.append(s.charAt(index+4));
sb.append(s.charAt(index+5));
String stringForGenome = sb.toString();
//是否是结束基因
if(stringForGenome == "TAG" || stringForGenome == "TAA"
|| stringForGenome == "TGA")
break;
else{
while(true){
sb = new StringBuilder();
sb.append(s.charAt(index+3));
sb.append(s.charAt(index+4));
sb.append(s.charAt(index+5));
stringForGenome = sb.toString();
if(stringForGenome.equals("TAG") || stringForGenome.equals("TAA")
|| stringForGenome.equals("TGA"))
break;
else{
System.out.print(stringForGenome);
flagForFirst = false;
}
index = index + 3;//继续判断后三位字符是否是基因
}
}
newindex = index + 3;//从新的基因点出发继续判断
System.out.println();//第一段基因结束,换行
}
}
}
如有帮助,还请采纳!谢谢!
没看懂,为啥TTT和GGGCGT是输出结果???
题干又问题吧,这就有歧义