Python 函数执行后返回None
我用这个密码把一条DNA链分成3组。除了最后的“无”之外,结果中的一切都是有意的 与一起使用时Python 函数执行后返回None,python,python-3.x,Python,Python 3.x,我用这个密码把一条DNA链分成3组。除了最后的“无”之外,结果中的一切都是有意的 与一起使用时 print(codons('ATGCTCAAGTAGR')) 返回: ATG CTC AAG TAG R None 一切正常,只要在调用函数时去掉返回和打印即可 def codons(x): for i in range(0, len(x), 3): print(x[i:i + 3]) codons('ATGCTCAAGTAGR') 这里唯一的问题是,您要获取print语
print(codons('ATGCTCAAGTAGR'))
返回:
ATG
CTC
AAG
TAG
R
None
一切正常,只要在调用函数时去掉返回和打印即可
def codons(x):
for i in range(0, len(x), 3):
print(x[i:i + 3])
codons('ATGCTCAAGTAGR')
这里唯一的问题是,您要获取print语句的返回值,然后打印它。print语句本身不返回任何内容,因此其返回值将设置为None 您可以在函数内打印,也可以重复附加到结果字符串并在函数后打印
def codons(x):
for i in range(0, len(x), 3):
print(x[i:i + 3])
codons('ATGCTCAAGTAGR')
这种方法较短:
def codons(x):
for i in range(0, len(x), 3):
print(x[i:i + 3])
codons('ATGCTCAAGTAGR')
这种方法的优点是将IO与功能分开:
def codons(x):
result = ""
for i in range(0, len(x), 3):
result += (x[i:i + 3] + '\n')
return result
print(codons('ATGCTCAAGTAGR'))
您可以将结果保存在列表中
def codons(x):
result=[]
for i in range(0, len(x), 3):
result.append(x[i:i + 3])
return result
你希望函数做什么/返回什么?这就是为什么我从来没有过早地教人们如何打印。如果控制台是教学中使用的唯一输出设备,人们往往会忽略打印内容和返回内容之间的区别,因为最终所有结果都会打印出来。这是否回答了您的问题?