所以我只是在学习Python,并且正在做一个在线练习来使用Python语言和软件本身。现在我正在努力使一个函数(getData()
)运行,然后将该函数的结果运行到另一个函数(getStats()
)中,该函数都带有main()
。每一个单独工作,但我有一个问题与main()
。我可以让我的第一个getData()
运行并生成我的列表,但我无法让该列表直接运行到getStats()
。它实际上再次运行getData()
,然后在输入时返回错误消息。有没有人建议我不要收到那个错误消息,然后实际运行我的getStats()
?你知道吗
def getData():
import math
pop = []
while True:
user = raw_input("Please enter a population number (-1 to quit): ")
pop.append(user)
if user == '-1':
break
if user <= '0':
print "Population not valid, please input a value higher then 0"
new_pop = map(int, pop)
pop2 = filter(lambda x:x >=1, new_pop)
print "Your population list is: ", pop2
return
def getStats():
i = ""
asc = sorted(i)
print "The collected data in the asecending order", asc
dec = sorted(i, reverse = True)
print "The collected data in the descending order", dec
maxi = max(i)
print "The maximum of the collected data is", maxi
mini = min(i)
print "The minimum of the collected data is",mini
def getMean(i):
aver = round(sum(i), 2)/round(len(i), 2)
print "The average of the collected data is %.2f" % aver
getMean(i)
def getStdev(i):
aver = sum(i)/len(i)
var = sum(pow(user-aver,2) for user in i)/len(i)
stdev = math.sqrt(var)
print "The standard deviation of the collected data is %.2f" % stdev
return
def main():
getData()
getStats(getData())
main()
每个函数中的变量不能被其他函数variable/functionscope访问。 使用它们的一种方法是让函数返回这些值。下面是一个简化的示例:
其他一些想法:
您并不真正需要main()函数。它什么也没做。 更常见的是,添加条件语句仅在运行文件本身时运行,而不是在将其作为模块导入时运行:
if __name__ == '__main__': data = get_data() get_stats(data)
签出PEP 008
通常导入应该在文件的开头(Imports)
函数名是camel_case
相关问题 更多 >
编程相关推荐