包含字符串和函数的python return语句

时间:2016-04-29 01:34:20

标签: python string function return multiple-return-values

def intron_comparison(retained_introns_file, non_retained_introns_file):
    with open(retained_introns_file, 'r') as r, open(non_retained_introns_file, 'r') as nr:
        r_gc = avg_gc(r)
        nr_gc = avg_gc(nr)
        r_avglen = intlength(r)
        nr_avglen = intlength(nr)
        r_percdiv = intdiv(r)
        nr_percdiv = intdiv(nr)
    return ('The GC content for non retained introns is ' + nr_gc + '\n' +
        'The GC content for retained introns is ' + r_gc + '\n' +
        'The average length of non retained introns is ' + nr_avglen + '\n' +
        'The average length of retained introns is ' + r_avglen + '\n' +
        'The percent of non retained introns divisible by 3 is ' + nr_percdiv + '\n' +
        'The percent of retained introns divisible by 3 is ' + r_percdiv + '.')

上面是我编写的一个函数,它将3个其他函数组合在一起并比较它们中的2个文件。我希望return语句在每个值之前表示一个描述符,如您所见,但我收到以下错误:

TypeError: Can't convert 'NoneType' object to str implicitly

关于最后一行。我错过了什么?

编辑:代码运行得非常好,我只是遇到了返回声明的问题 - 我认为这是我遗漏的一些小事情?预先感谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

对于大字符串,就像你做了一些事情一样。

首次使用""" """而不是试图像你一样建立它。

其次使用%style或format将值插入字符串。较新的python建议是使用格式。

    Alamofire.request(.POST, dirurl, parameters: param, encoding:.URL).responseJSON { response in

        switch response.result {
        case .Success(let value):
            completionHandler(value as? NSDictionary, nil)
        case .Failure(let error):
            completionHandler(nil, error)
        }
    }
}