def getNum(): # 接受用户不定长的输入
nums=[]
inumstr = input("请输入数字(回车退出):")
while inumstr != '':
nums.append(eval(inumstr)) # 解释器到底了度没找到它要找到的东西出现以上错误, unexpected EOF while parsing,上面的是空字符,不是空格。
inumstr = input("请输入数字(回车退出):")
return nums
def mean(numbers):
s=0
for num in numbers:
s=s+num
return s/len(numbers)
def dev (numbers,mean):
sdev=0
for num in numbers:
sdev=sdev+pow((num-mean),2)
return pow(sdev/len(numbers),0.5) #len(numbers)-1 就是N-1的意思?公示里面没有这个说法呢?
def median (numbers):
sorted(numbers) #sorted 给序列排序
size=len(numbers)
if size%2==0:
med = (numbers[size//2-1]+numbers[size//2])/2 # //整除的运算符,取整除 - 向下取接近商的整数,5/2=2.5 取值2 舍去后面的小数部分
else:
med = numbers[size//2]
return med
n = getNum()
m = mean(n)
print("平均值:{:.2},方差:{:.2},中位数:{}。".format(m,dev(n,m),median(n))) # 若果其中不输入:则会出现如下代码 AttributeError: 'float' object has no attribute '2'
标识两个错误的代码:
1、while inumstr != '': 这个是空字符的意思,若输入了空格,实际没有空格结束的话,就会在下一行出现下面的信息
# 解释器到底了度没找到它要找到的东西出现以上错误, unexpected EOF while parsing,上面的是空字符,不是空格。
2、print("平均值:{:.2},方差:{:.2},中位数:{}.".format 格式化函数中,若取小数没有在{}里面加上:或者这个冒号是中文状态下的,执行的时候也会报错。
# 若果其中不输入:则会出现如下代码 AttributeError: 'float' object has no attribute '2'