2018年6月14日

输入整数列表,求平均数、方差和中位数。

from math import sqrt

#获取整数序列的函数
def get_num():
    numbers = []
    input_num_str = input('请输入整数(输入空值表示输入终止):')
    while input_num_str != "":
        try:
            input_num = eval(input_num_str)
            if not isinstance(input_num, int):
                print("输入的数据不是整数,请重新输入。")
                input_num_str = input('请输入整数(输入空值表示输入终止):')
            else:
                numbers.append(input_num)
                input_num_str = input('请输入整数(输入空值表示输入终止):')
        except:
            print("输入的数据不是整数,请重新输入。")
            input_num_str = input('请输入整数(输入空值表示输入终止):')
    return numbers

#求平均数
def mean(numbers):
    s = 0.0
    for num in numbers:
        s = s + num
    return s / len(numbers)

#求方差
def dev(numbers, mean):
    sdev = 0.0
    for num in numbers:
        sdev = sdev + (num - mean)**2
    return sqrt(sdev)

#求中位数
def median(numbers):
    new_numbers = sorted(numbers)
    n = len(new_numbers)
    if n % 2 == 0:
        return (new_numbers[n // 2 - 1] + new_numbers[n // 2]) / 2
    else:
        return new_numbers[n // 2]


nums = get_num()
m = mean(nums)
d = dev(nums, m)
medi = median(nums)
print("平均值为:{},方差为:{:.2},中位数为:{}".format(m, d, medi))
请输入整数(输入空值表示输入终止):1
请输入整数(输入空值表示输入终止):2
请输入整数(输入空值表示输入终止):3
请输入整数(输入空值表示输入终止):4
请输入整数(输入空值表示输入终止):5
请输入整数(输入空值表示输入终止):
平均值为:3.0,方差为:3.2,中位数为:3
D = {"张三": 88, "李四": 90, "王五": 73, "赵六": 82}
D["钱七"] = 90
D["王五"] = 93
del D["赵六"]
print(D)
{'张三': 88, '李四': 90, '王五': 93, '钱七': 90}
#拆分字符串,默认分隔符为空格,返回一个列表类型。
a = "China is a great country".split()
print(a)
['China', 'is', 'a', 'great', 'country']

猜你喜欢

转载自www.cnblogs.com/2018jason/p/9183919.html