对于将输出写入.txt文件的函数的return与print

时间:2018-02-22 22:06:39

标签: python python-3.x

我正在尝试将以下代码的输出写入.txt文件。

import os 

def add(num_1, num_2):
    result_1 = num_1 + num_2
    result_2 = 10 + result_1
    return("Hello, World!")
    return(str(result_1))
    return(str(result_2)) 

output = add(1,7)
save_path = 'file_path'
file_name = os.path.join(save_path, "test.txt")
file = open(file_name,'w')
file.write(output)
file.close()

当我打开.txt文件时,唯一写的是“Hello,World!”

但是,如果我将返回更改为打印并在iPython控制台而不是.txt文件中输出,我会得到以下内容。

def add_2(num_1, num_2):
    result_1 = num_1 + num_2
    result_2 = 10 + result_1
    print("Hello, World!")
    print(str(result_1))
    print(str(result_2)) 

add_2(3,7)

我得到以下输出: 你好,世界! 10 20

如何将函数中返回的所有值都放入.txt文件中?

谢谢。

4 个答案:

答案 0 :(得分:3)

import os 

def add(num_1, num_2):
    result_1 = num_1 + num_2
    result_2 = 10 + result_1
    return("Hello, World!")
    return(str(result_1))
    return(str(result_2)) 

output = add(1,7)
save_path = 'file_path'
file_name = os.path.join(save_path, "test.txt")
file = open(file_name,'w')
file.write(output)
file.close()

当您运行上面的代码时,一旦它到达return函数中的第一个add,它就会停止运行,因此永远不会处理return(str(result_1))return(str(result_2))。< / p>

输出相当于:

    return("Hello, World!")
    return(str(result_1))
    return(str(result_2)) 

你需要写:

    return "Hello, World!" + '\n' + str(result_1) + '\n' + str(result_2) 

答案 1 :(得分:0)

仅处理第一个返回,因为返回退出方法 尝试

def add(num_1, num_2):
result_1 = num_1 + num_2
result_2 = 10 + result_1
result = str(result_1) + str(result_2)
return result

答案 2 :(得分:0)

return将立即退出任何函数调用。但你可以将所有结果归结为一起:

def add(num_1, num_2):
    result_1 = num_1 + num_2
    result_2 = 10 + result_1
    return "Hello, World!", str(result_1), str(result_2)

答案 3 :(得分:0)

只有遇到的第一个return函数才会触发,因为return会立即退出任何函数调用。

如果你想要所有这些,请构建一个元组,字符串或其他一些数据结构并def add(num_1, num_2): result_1 = num_1 + num_2 result_2 = 10 + result_1 outstr = "" outstr += "Hello, World!" outstr += str(result_1) outstr += str(result_2) return outstr

例如:

    outstr = "{} {} {}".format("Hello, World!", result_1, result_2)
    return outstr

或者为了更好的格式化,请使用.format()

    return ("Hello, World!", result_1, result_2)

或者打包元组(或其他一些方便的数据结构)以便以后处理。

    return "Hello, World!" + '\n' + str(result_1) + '\n' + str(result_2)

或者,如果你想要它完全按照你印刷的那样返回

"webpack": "^3.11.0"
"foundation-sites": "^6.4.4-rc1",
"jquery": "^3.3.1",
"node-sass": "^4.7.2",
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-router": "^4.2.0"

每个都有其优点或缺点,取决于你打算做什么。欢呼声。