【发布时间】:2020-11-10 03:54:28
【问题描述】:
最近我正在处理一个 python 挑战,我需要创建一个能够将 DNA 转录为 mRNA 的函数,但每次我运行代码时都会收到相同的错误消息:
如果 dna[y] == "A": IndexError: 字符串索引超出范围
谁能帮助我?下面是我的代码示例。
global y
y = 0
global rna
rna = ""
def dna_to_rna(dna):
global y
global rna
for i in range(len(dna)):
if dna[y] == "A":
rna += "U"
elif dna[y] == "T":
rna += "A"
elif dna[y] == "G":
rna += "C"
else:
rna += "G"
y += 1
return rna
【问题讨论】:
-
欢迎来到 SO!你是如何定义变量dna的?它不在您发布的代码示例中。谢谢
-
您的错误是告诉您
dna[y]不存在。y可能太大了。另外,使用global也很奇怪。您遇到问题并且这里的人无法帮助您这一事实是一个很好的提示,不要使用global,永远。 -
首先避免将变量命名为全局变量,这被认为是不好的编程习惯。
-
@smile 看起来变量dna是一个字符串,在函数中作为参数输入。
-
@RaiyanChowdhury 我知道使用 global 很奇怪,但我只是用这种方式定义了 thease 变量,这样我就不会遇到像 y 和 rna 变量被解释为局部变量这样的问题,但无论如何,我会尽量不要再次犯下这种不良做法。
标签: python loops bioinformatics index-error