计算标准差,输入多行,以空行结束输入

img


data=input()
ls=[]
sum=0
while data:
  ls.append(data.split())
  data=input()
for i in range(len(ls)):
  sum+=eval(ls[i])
ave=sum/len(ls)
sum=0
for i in range(len(ls)):
  sum+=(eval(ls[i])-ave)**2
a=sum/len(ls)
print("{:.2}".format(a))

真的不知道该怎么办了,就是不太对


from math import sqrt
def getnum():
    nums=[]
    inumstr=input("请输入数字(直接输入回车退出):")
    while inumstr!="":
        nums.append(eval(inumstr))
        inumstr=input("请输入数字(直接输入回车退出):")
    return nums
def mean(numbers):
    s=0.0
    for num in numbers:
        s=s+num
    return s/len(numbers)
b = getnum()
def biaozhuncha(numbers):
    global b
    a=0.0
    for num1 in numbers:
        a+=(num1-mean(b))**2
    return (a/len(numbers))**0.5
print("标准差:{:.2}".format(biaozhuncha(b)))