-1

程序将询问用户的输入: inp = input("Enter numbers")

用户可能输入数字为 4535435439。我的第一个问题是如何将数字存储为列表。例如,如果用户输入为 12、14、15。我希望将每个数字存储为一个列表。有内置功能吗?以及如何从该列表中获取最大值、最小值和平均值?

PS我不需要代码。请指导我的逻辑。告诉我我该怎么做?然后我会把它转换成代码并放在这里。谢谢!

4

3 回答 3

1

如果数字用逗号分隔,那么你很幸运

import ast
numbers = ast.literal_eval(inp)

会给你一个数字的元组。将元组转换为列表很容易

numbers = list(numbers)

有一些函数min()max()你可以用它来找到最小值和最大值,只需传递numbers给它们

您可以min(或max)不使用这样的内置函数

min_number = numbers[0]
for n in numbers:
    if n < min_number:
        min_number = n

max很相似

要获得平均值,请将数字相加并除以长度

total = 0
for n in numbers:
    total += n
average = float(total)/len(numbers)

在 Python2 中,您需要将其中一个数字转换为float,否则您将得到一个整数除法。希望您正在使用 Python3,因为我看到您正在使用input()而不是raw_input()

快捷方式是使用sum()函数

average = sum(numbers)/len(numbers)
于 2012-08-14T10:25:38.883 回答
1
min(int(x) for x in raw_input().split(','))

会得到用户的输入。如果字符串是逗号分隔的数字,例如1, 2, 3, 4,这会将字符串拆分为每个数字,将它们转换为整数,找到该值列表的最小值。

于 2012-08-14T10:27:10.250 回答
0

您可以在循环中向用户询问一个数字,并在输入时接受空输入作为结束并跳出循环。在循环中,您只需将输入附加到列表中。

于 2012-08-14T10:29:51.153 回答