Python 腌制+;str()函数

Python 腌制+;str()函数,python,pickle,Python,Pickle,Pickle模块和+str()函数之间有什么区别?我刚写完下面的代码 def orf(codons): seqlist = [] flag = False start = ['ATG'] stop= ['TAA','TGA','TAG'] for i in codons: if i in start: flag = True if flag == True: seqlist.append(i) if i in

Pickle
模块和
+str()
函数之间有什么区别?我刚写完下面的代码

def orf(codons):
seqlist = []
flag = False
start = ['ATG']
    stop= ['TAA','TGA','TAG']
    for i in codons:
    if i in start:
        flag = True
            if flag == True:
        seqlist.append(i)
    if i in stop:
        flag = False
return seqlist

frame1 = string
codons = [frame1[i:i+3] for i in range (0, len(frame1),3)]
one = orf(codons)
seq1 =''.join(one)
output1 = 'Length of 1st open reading frame is:'+str(seq1)
#seq1 =''.join(one)
seq_list.append(seq1)
length1 = len(seq1)
output_1 = '\nSize of 1st open reading frame is:'+str(len(seq1))
length_list.append(length1)
out.write(output1)
out.write(output_1)

我使用
+str()
函数以字符串的形式获取函数
(orf(密码子))
。是否可以使用
Pickle
。我确实读过python教程,但一个字也不懂它的意思。如果您能使用我的代码,我将非常高兴。

没有
+str
功能

显示的代码段包含表达式
“第一个打开阅读框的长度为:'+str(seq1)
,它由字符串、
+
运算符和对类
str
的调用组成


Pickle是一个允许(大多数)python对象序列化为文件(或流)的模块

str函数的作用与pickle模块截然不同

str
通常以人类可读或“友好”的方式将任何Python对象转换为字符串(还有
repr
函数,该函数的友好性稍差,但更注重机器可读性)。因此
str([1,2,3])
返回字符串
'[1,2,3]'
。自定义类可以通过重写特殊的
\uuuu str\uuu
方法来控制
str
如何将它们转换为字符串

另一方面,
pickle
是为Python对象的序列化而设计的。这也可能涉及将对象转换为字符串,但它完全关注机器可读性,而不是人工解释。事实上,从多种形式的酸洗中得到的字符串(有几种不同的协议)包含二进制值,不能直接作为文本查看。(
pickle
也有各种各样的钩子,自定义类可以绑定到这些钩子中,但是它们比
\uuuu str\uuu
要复杂一些)


对于您的情况,
pickle
似乎不是您想要的。使用
str
可以将整数、列表和其他对象转换为字符串进行打印。字符串,包括使用引号创建的文字字符串和从代码> STR 中获得的字符串,可以使用<代码> +<代码>运算符连接(尽管您可能需要考虑)。请注意,如果您已经使用
str.join
方法将列表转换为字符串,则无需再次对结果运行
str
(就像您在问题代码中对
seq1
所做的那样)。

没有
+str()
函数;您正在将两个字符串添加到一起;您预定义的字符串,以及
str()
的输出!但是,当我直接调用函数时,我总是会遇到一个错误,比如
output\u 1='\n第一个打开阅读框的大小是:'orf(codons)
我必须分配diff变量,然后使用+str()打印结果