我正在尝试编写一个程序,该程序需要用户输入2次。
然后我想从数组中提取该列,并使用我自己的模块统计信息对其执行功能。
我尝试设置变量,即
def arcol(fname, i):
data = np.loadtxt(fname, usecols=i)
return data
,但是它不喜欢将表观字符串usecols
设置为
这是我的代码,错误是print()
中的变量未定义。
import numpy as np
import stats as st
def setInput1():
fname = input("Please enter file location/path:")
return fname
def setInput2():
i = input("Please enter the desired column in the array:")
return i
def arcol(fname, i):
return np.loadtxt(fname, usecols= i)
print(st.mean(arcol(fname, i)))
答案 0 :(得分:1)
您的问题似乎是您从未调用过setInputN
函数。仅仅定义一个函数并没有任何用处,您必须调用它以获取其返回值。我想您想要这样的东西:
print(st.mean(arcol(setInput1(), setInput2())))
我尚未测试您的代码,因此可能会有更多错误,例如输入数据的类型出现问题(如所写,这两个函数都将返回字符串,但是您用作{{的第二个参数的值1}}可能需要是一个数字。
为功能选择更好的名称也是一个好主意。 arcol
函数均没有描述性名称。 setInputN
可能会更好一些,但是它是如此的缩写,对我来说并不意味着什么,因为对于它的作用一无所知的人。
我还想知道是否真的需要arcol
函数,因为它们很短并且可能不会在多个地方调用。您可以通过直接调用setInputN
来替换对每个函数的调用。