我有像
这样的代码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作为一个我不明白的空数组。为什么打印功能会改变它?
答案 0 :(得分:2)
如果您不使用打印功能,您所做的只是定义功能,列表将保持为空。您必须调用该函数并返回x和f才能看到它们的值。
您实际上是在向计算机提供有关如何执行某些操作的说明,但您并没有告诉它完成这些步骤。
答案 1 :(得分:0)
打印功能与您的问题无关:)!您提供的数组被定义为空:x=[]; f=[]
。您刚刚在print语句中调用了函数。
此外,如果您想要返回simpsons(x,f)
和x
,则不应使用此功能f
。您不需要事先将它们传递给函数,列表x
和f
将在函数内创建。
最后,在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)