2012-08-14 316 views
0

程序将询问用户的输入: INP =输入(“输入数字”)如何在Python中输入输入数字的最大最小值和平均值?

用户可以输入号码作为4535435439.我的第一个问题是我如何保存为列表中的号码。例如,如果用户输入为12,14,15,我希望每个数字都存储为一个列表。有没有inbuild功能?我该如何从列表中获得最大值,最小值和平均值?

P.S我不需要代码。请在逻辑中引导我。告诉我我该怎么做?然后我会将它转换成代码并放在这里。谢谢!

回答

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内建函数是类似

为了得到平均,在Python2你需要转换的数字来float的一个长度

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

增加的数量和鸿沟,否则你将得到一个整数divison。希望您在使用Python3,我看到你正在使用input()代替raw_input()

快捷的方式是使用sum()功能

average = sum(numbers)/len(numbers) 
+0

谢谢你的帮助gnibbler。但是我怎样才能不使用Python函数呢?我想从逻辑上强大。我怎样才能使用循环? – sachitad 2012-08-14 10:36:20

+0

@sachitad,我将它添加到我的答案 – 2012-08-14 10:38:52

+0

非常感谢你的帮助。欣赏它:) – sachitad 2012-08-14 10:41:07

1
min(int(x) for x in raw_input().split(',')) 

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

+1

你不需要'[]'。 'min()'适用于生成器表达式 – 2012-08-14 10:28:37

+0

非常棒!谢谢@gnibbler,不知道。 – Aesthete 2012-08-14 10:31:00

0

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

相关问题