我对编程非常陌生,所以这可能是一个简单的问题。这是我花了几天的功课。我正在尝试使用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 "))
答案 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))
希望这对您有所帮助!祝你有美好的一天。