import math
def stats(a):
mean = sum(a)/len(a)
var = sum(pow(x-mean,2) for x in a) / len(a)
std = math.sqrt(var)
return (mean, var, std)
print(stats[1,2,3,4,5,6,7,8,9])
我在做什么错?我想创建一个显示均值,var和std的函数而不使用已经存在的python函数,并且创建向量时遇到麻烦。你能帮我吗?
答案 0 :(得分:1)
您需要遵守Python的函数调用约定。 @JBernardo指出了这一点,其他人也指出了(Granny Aching):您正在尝试使用[pram1, param2...]
关键字def引入函数定义。必须遵循 通过函数名称和形式参数的括号列表。
我承认该页面并未明确告知调用行为与声明相同。但是,它包含许多填补这一空白的示例。
大多数时候,我更喜欢初学者明确地编写代码:
import math
def stats(a : list): # explicitly ask for a list for a
mean = sum(a)/len(a)
var = sum(pow(x-mean,2) for x in a) / len(a)
std = math.sqrt(var)
return (mean, var, std)
my_list = [1,2,3,4,5,6,7,8,9] # its a list
mean,var,std= stats(my_list)
print('Mean:{}, var:{}, std:{}'.format(mean,var,std))
答案 1 :(得分:0)
在最后一行的打印语句中,您具有:stats[1,2,3,4,5,6,7,8,9]
括号[]
用于下标(例如,从列表,字符串或字典中选择元素)
使用函数时,需要包括括号。您是说stats([1,2,3,4,5,6,7,8,9])
吗?