为什么没有print函数python代码不起作用

时间:2018-05-02 19:59:39

标签: python

我有像

这样的代码
file=open("cd.txt","r")
x=[]
f=[]
def simpsons(x,f):
    for line in file:
        y=line.split()
        x.append(float(y[0]))
        f.append(float(y[1]))
    return(x,f)
print(simpsons(x,f))

问题是当我不写"打印(simpsons(x,f))"它需要x和f作为一个我不明白的空数组。为什么打印功能会改变它?

2 个答案:

答案 0 :(得分:2)

如果您不使用打印功能,您所做的只是定义功能,列表将保持为空。您必须调用该函数并返回x和f才能看到它们的值。

您实际上是在向计算机提供有关如何执行某些操作的说明,但您并没有告诉它完成这些步骤。

答案 1 :(得分:0)

打印功能与您的问题无关:)!您提供的数组被定义为空:x=[]; f=[]。您刚刚在print语句中调用了函数。

此外,如果您想要返回simpsons(x,f)x,则不应使用此功能f。您不需要事先将它们传递给函数,列表xf将在函数内创建。

最后,在python中使用带有关键字with的上下文管理器也是一个很好的做法。这将处理文件的关闭。

def simpsons(filename):
    with open(filename, 'r') as file:
        for line in file:
            y = line.split()
            x.append(float(y[0]))
            f.append(float(y[1]))
    return x,f
x,f = simpsons('cd.txt')

print(x, f)