python密码转换器输入检查

python密码转换器输入检查,python,input,Python,Input,我陷入了密码子翻译程序的错误检查中,该程序将密码子翻译成相应的氨基酸。我在字典里有密码子表。现在我想检查两个不同的输入错误: 像“JFK”这样的输入应该显示一个错误,表明它不是密码子 像“JF”这样的输入应该显示一个错误,表明它不是密码子,也不是三个碱基的代码 如果你在字典里有密码子,你可以试着查找潜在的密码子,并抓住由此产生的错误 def check_codon(codon): try: acid = codonTable[codon] except KeyEr

我陷入了密码子翻译程序的错误检查中,该程序将密码子翻译成相应的氨基酸。我在字典里有密码子表。现在我想检查两个不同的输入错误:

  • 像“JFK”这样的输入应该显示一个错误,表明它不是密码子
  • 像“JF”这样的输入应该显示一个错误,表明它不是密码子,也不是三个碱基的代码

  • 如果你在字典里有密码子,你可以试着查找潜在的密码子,并抓住由此产生的错误

    def check_codon(codon):
        try:
            acid = codonTable[codon]
        except KeyError:
            if len(codon) != 3:
                return "Not a codon, not a three-base code"
            else:
                return "Not a codon"
    
    >>> print check_codon("JFK")
    "Not a codon"
    >>> print check_codon("JK")
    "Not a codon, not a three-base code"
    

    我相信这应该行得通。

    请阅读以下内容:哈希表是什么样子的?为什么
    “JFK”
    不是密码子?确定这一点的规则是什么?我认为一般的Python程序员对DNA测序/分析不太熟悉。如何确定并不重要,他有一个有效的翻译表,如果不在表中,则无效。@Perkins好的,那么这就是确定有效性的规则。他应该说,@user1691379那么请投票接受这个答案。你还应该回答人们提出的后续问题。应该是如果len(密码子)!=3:密码子都是3个碱基对序列。
    codon = raw_input()
    if len(codon) != 3:
      print "Not a codon/3 letter based."
    elif codon not in codonHash:
      print "Not a codon"
    else:
      acid = codonHash[codon]