You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python RNA序列长度计算代码运行结果不符合预期求助

你代码中存在的错误如下:

  • 语法错误:函数定义符号错误
    函数定义行def rna_length(mrna);末尾的分号需要改为英文冒号:,Python函数定义的语法要求末尾必须是冒号。
  • 核心逻辑错误:终止密码子判断规则错误
    你写的mrna [-3:]==end_rna1 or end_rna2 or end_rna3不符合Python逻辑判断的语法,这种写法等价于(mrna[-3:] == end_rna1) or True or True,因为非空字符串的布尔值永远为True,所以不管RNA末尾是不是三个终止密码子中的一个,这个判断条件永远成立,这是你输出结果不符合预期的核心原因。
    正确的写法为mrna[-3:] in (end_rna1, end_rna2, end_rna3),也可以展开写成mrna[-3:] == end_rna1 or mrna[-3:] == end_rna2 or mrna[-3:] == end_rna3。
  • 语法错误:else分支冗余+缩进错误
    else后不需要额外写判断条件,你写的else: ((mrna[0:3]!=start_rna) or (mrna [-3:]!=end_rna1 or end_rna2 or end_rna3))属于完全多余的无效代码。
    另外Python靠缩进划分代码块,你if分支下的两行代码、else分支下的return代码都没有正确缩进,运行会直接报语法错误。
  • 冗余写法:变量末尾多余分号
    Python中不需要在变量赋值语句末尾加分号,你写的start_rna = 'AUG';这类语句末尾的分号可以删除,不报错但属于冗余写法。

修正后的可运行代码:

def rna_length(mrna):
    start_rna = 'AUG'
    end_rnas = ('UGA', 'UAA', 'UAG')
    
    if mrna[:3] == start_rna and mrna[-3:] in end_rnas:
        length = len(mrna[3:-3])
        return length
    else:
        return "Not readable RNA code"

内容的提问来源于stack exchange,提问作者Danny de Bont

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:39:03