gpt4 book ai didi

python - 接收到str/int错误,无法理解原因

转载 作者:行者123 更新时间:2023-12-03 08:26:30 25 4
gpt4 key购买 nike

我目前正在尝试寻找DNA的互补链,这意味着我必须将所有T替换为As,将As替换为Ts,将Cs替换为Gs,以及将Gs替换为Cs。我一直在尝试找到一种方法来执行此操作,该方法不会导致程序完全返回一个字母,我想我已经找到了方法,但是现在每次运行它时,我都会收到一条错误消息,告诉我将行转换为str并我无法放置在应该放置的位置或原因,这是我目前拥有的代码:

#open file with DNA strand
df = open('dnafile.txt','r')

#function for finding complementary strand
def encode(code,DNA):
for k in code:
DNA = DNA.replace(k,code[k])
print('The complementary strand is: ' + DNA)

#carrying out function
code = {ord('A'):'T', ord('T'):'A', ord('G'):'C', ord('C'):'G'}
DNA = df.read()
encode(code,DNA)

最佳答案

您将整数作为DNA.replace()的第一个参数传递,该参数仅接受字符串; ord('A')生成一个整数,这就是您作为k传递的内容:

DNA = DNA.replace(k, code[k])

您可以仅用 ord('A')替换 'A',但是随后出现新问题,即 C->G替换将撤消 G->C替换,反之亦然。

您应该改为使用 str.translate() method并删除循环:
def encode(code,DNA):
DNA = DNA.translate(code)
print('The complementary strand is: ' + DNA)

另请参阅 Simultaneous .replace functionality(链接到您上一个问题的副本,它似乎只在那里部分实现了我的方法)。

关于python - 接收到str/int错误,无法理解原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40226939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com