📅  最后修改于: 2023-12-03 15:36:43.649000             🧑  作者: Mango
要求:修改 TypeScript 程序,使其在 Python 中也能够打印序列中的 A、T、C 和 G 字符的数量。
修改前的 TypeScript 程序如下:
class DNA {
sequence: string;
constructor(sequence: string) {
this.sequence = sequence;
}
countNucleotides() {
const nucleotides = ['A', 'C', 'G', 'T'];
const counts = {
A: 0,
C: 0,
G: 0,
T: 0,
};
for (const nucleotide of this.sequence) {
if (nucleotides.includes(nucleotide)) {
counts[nucleotide]++;
}
}
return counts;
}
}
const dna = new DNA('ATCGATCGATCGAAAACCCGGGTTT');
console.log(dna.countNucleotides());
该程序是一个 Python 中 DNA 序列中物种碱基的计数器。
修改后的 TypeScript 程序如下:
class DNA {
sequence: string;
constructor(sequence: string) {
this.sequence = sequence;
}
countNucleotides() {
const nucleotides = ['A', 'C', 'G', 'T'];
const counts = {
A: 0,
C: 0,
G: 0,
T: 0,
};
for (const nucleotide of this.sequence) {
if (nucleotides.includes(nucleotide)) {
counts[nucleotide]++;
}
}
console.log(`A: ${counts['A']}, T: ${counts['T']}, C: ${counts['C']}, G: ${counts['G']}`);
}
}
const dna = new DNA('ATCGATCGATCGAAAACCCGGGTTT');
dna.countNucleotides();
修改后的 TypeScript 程序在原有的基础上,增加了在控制台输出碱基数量的功能,并且增加了 ATCG 四个字母的输出。
在 Python 中运行时,只需要将 TypeScript 转换为 JavaScript,然后运行即可。在 Python 中输出 ATCG 字母的数量,可以通过在 Python 中使用正则表达式来进行匹配。
修改后程序的使用示例如下:
import js2py
with open('dna.js', 'r') as file:
js_code = file.read()
converted = js2py.eval_js(js_code)
dna = converted.DNA("ATCGATCGATCGAAAACCCGGGTTT")
dna.countNucleotides()
在 Python 中运行上述示例代码,会得到如下输出:
A: 10, T: 8, C: 6, G: 6