2012-08-14 319 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

您可以在循環中要求用戶輸入一個數字,並在輸入和跳出循環時接受空輸入作爲結束。在循環中,您只需將輸入追加到列表中。

相關問題