在python中查找平均值,最大值,最小值和中位数

时间:2019-09-07 17:08:56

标签: python

我对编程非常陌生,所以这可能是一个简单的问题。这是我花了几天的功课。我正在尝试使用Python创建一个程序,用户首先确定3或4个随机整数。然后,我必须输出这些数字的平均值,最大值,最小值和中位数。

到目前为止我所拥有的:

print("Select three or four numbers")

num1=int(input("Enter first number "))

num1=int(input("Enter second number "))

num3=int(input("Enter third number "))

num4=int(input("Enter forth number "))

1 个答案:

答案 0 :(得分:1)

泽维尔,你好!我只想指出要获得列表的中间值,您应该将其作为第一行:

from statistics import median

然后,在当前代码旁边,您需要将所有数字放入我们可以迭代的对象中。您不必这样做,但是对于Python代码而言,这样做要容易得多。

print("Select three or four numbers")

num1=input("Enter first number ")

num2=input("Enter second number ")

num3=input("Enter third number ")

num4=input("Enter forth number ")

num_list = [num1, num2, num3, num4]

为澄清起见,列表是一个包含其他对象的对象,您可以按其索引访问它们,从0开始获取第一个对象,从1获取第二个对象,从2获取第三个对象。因此,如果我们执行 num_list [0] ,我们将获得第一个数字,以此类推,每次将0加1时都如此。

接下来,输入函数仅返回字符串。这意味着我们不能使用它们来获取最小值,平均值和最大值。这意味着我们需要将字符串(文本)转换为数字,在这种情况下为整数。

幸运的是,Python涵盖了我们。在Python中,我们可以同时使用 mapping list comprehension将列表中的每个文本片段转换为字符串。在这种情况下,我们将使用列表理解,该列表可用于在列表中的每个项目上执行表达式。在列表推导中,您也可以对表达式使用条件,但在本示例中我们不需要。

因此,我们需要使用Python的 int 函数将列表中的每个字符串转换为文本。这就是我们要这样做的方式:

num_list = [int(x) for x in num_list]

因此,现在,我们有了一个整数列表,可以用来获取最小值,中位数(平均值)和最大值。

获得最小值和最大值很简单。您可以使用 max min 函数来获取列表的最大值和最小值,如下所示:

max_number = max(num_list)
min_number = min(num_list)

使用导入的统计库中的函数也应直接获取中位数。这是您将要使用的:

median_number = median(num_list)

额外-获取平均值:获取平均值并不那么直接,因此我们需要自己计算。您可以通过获取每个数字的总和,然后将其除以数字数量来计算任何数字的平均值。我们可以把它变成一个函数。 (我们不会使用lambda,因为它们有点高级,我正在尝试保持基本。)方法如下:

def avg(numbers):
    return sum(numbers) / len(numbers)

现在,让我们解释一下以上几行。我们创建一个函数,这是一段我们可以调用的代码,使它需要'numbers'变量,然后使它返回一个值。当一个函数返回一个值时,它将给出带有该值的输出。

在这种情况下,我们创建了一个函数,该函数接受“数字”变量作为输入,并返回“数字”列表中所有数字的总和除以“数字”列表中所有数字的长度。

现在,我们可以获得这样的平均值:

avg_number = avg(num_list)

然后,您只需要打印值即可。我们将使用string formatting将变量放入字符串中。它允许我们用对象的字符串形式用{}替换字符串的一部分。我们最终可以将完成的代码如下所示:

from statistics import median

def avg(numbers):
    return sum(numbers) / len(numbers)

print("Select three or four numbers")

num1=int(input("Enter first number "))

num2=int(input("Enter second number "))

num3=int(input("Enter third number "))

num4=int(input("Enter forth number "))

num_list = [num1, num2, num3, num4]

num_list = [int(x) for x in num_list]

max_number = max(num_list)
min_number = min(num_list)

median_number = median(num_list)

avg_number = avg(num_list)

print("The Maximum Number: {}".format(max_number))

print("The Minimum Number: {}".format(min_number))

print("The Median Number: {}".format(median_number))

print("The Average Number: {}".format(avg_number))

希望这对您有所帮助!祝你有美好的一天。