Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 函数执行后返回None_Python_Python 3.x - Fatal编程技术网

Python 函数执行后返回None

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语

我用这个密码把一条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语句本身不返回任何内容,因此其返回值将设置为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

你希望函数做什么/返回什么?这就是为什么我从来没有过早地教人们如何打印。如果控制台是教学中使用的唯一输出设备,人们往往会忽略打印内容和返回内容之间的区别,因为最终所有结果都会打印出来。这是否回答了您的问题?