45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
#7.1.2
|
|
def r(filename): #获取数据
|
|
with open(filename, 'r') as f:
|
|
return list(map(float, f.read().split()))
|
|
|
|
def a(x): #平均值
|
|
average_x = sum(x)/len(x)
|
|
return "平均值:{:.0f}".format(average_x)
|
|
|
|
def f(x): #标准差
|
|
import numpy
|
|
list2_f = numpy.var(x) #numpy库的标准差公式
|
|
return "标准差:{:.0f}".format(list2_f)
|
|
|
|
def z(x): #中位数
|
|
y = x
|
|
length = len(y)
|
|
sorted_nums = sorted(y)
|
|
mid = length // 2
|
|
|
|
if length % 2:
|
|
result = sorted_nums[mid]
|
|
else:
|
|
left = sorted_nums[mid - 1]
|
|
right = sorted_nums[mid]
|
|
result = (left + right) / 2
|
|
return f"中位数:{round(result)}"
|
|
|
|
|
|
nums = r('nums.txt') #文件地址
|
|
print(nums)
|
|
nums_p = a(nums)
|
|
print(nums_p)
|
|
nums_b = f(nums)
|
|
print(nums_b)
|
|
nums_z = z(nums)
|
|
print(nums_z)
|
|
|
|
|
|
with open('new_nums.txt', 'w', encoding='utf-8') as new_nums:
|
|
new_nums.write(nums_p + "\n")
|
|
new_nums.write(nums_b + "\n")
|
|
new_nums.write(nums_z + "\n")
|
|
sorted_str = "排序后:" + " ".join(map(str, sorted(nums)))
|
|
new_nums.write(sorted_str + "\n") |