1 # coding=gbk
2 print("如果你想推出該程序,請輸入'quit'!") 3 min = max = sum = aver = 0 4 count = 2
5 num1 = input("請輸入第1個數字:") 6 if num1 == 'quit': 7 print("你已退出該程序!") 8 else: 9 num1 = int(num1) 10 sum = sum + int(num1) 11 max = min = aver = num1 12 print("最大值,最小值,和,平均值均為:" + str(num1)) 13 while count: 14 num = input("請輸入第" + str(count) + "個數字:") 15 if num == 'quit': 16 print("你已退出該程序!") 17 print("你一共輸入了" + str(count-1) + "個整數!") 18 print("最大值:", max, "最小值:", min, "和:", sum,"平均值:",aver) 19 break
20 else: 21 num = int(num) 22 if num <= max and num >= min: 23 pass
24 else: 25 if num > max: 26 max = num 27 else: 28 min = num 29 sum += num 30 aver = sum / count 31 count += 1
32 print("最大值:",max,"最小值:",min,"和:",sum,"平均值:",aver)
看這個需求,不難理解,該程序的核心思想就是不斷的比較,首先先確立第一個數字,這個數字是必須的,因為需要它與后面輸入的數字做比較,(見5~12行代碼)並且這第一個數還是特殊情況,最大值最小值和平均值都是其本身,完全可以單列出來。
然后,我們考慮后面輸入的數字了,給比較變量max、min賦初始值0,計算變量sum、aver賦初始值0,計數變量count賦初始值2(因為第一個特殊情況為count=1,已單列出去),計數變量用來統計共輸入了多少個數字,便於顯示(見14行代碼)和計算平均值(見30行代碼),后面輸入的這些數字可以看成一個整體,因為是需要不斷循環比較的(見13~32行代碼)。
來看一下比較的過程,第一個數字固定了比如是8,那么來輸入第二個數字,這里分兩種情況大於8或者小於8(見25~28行代碼),再輸入第三個數,這里就分兩種情況了,第一輸入的數介入前兩個數(這里的前兩個數不是前兩個輸入的數,而是比較之后得到的最大值和最小值這兩個數)之間,包括等於這兩個數,那么最大值最小值是不變的(見22~23行代碼,pass是跳過的意思,這里還可以寫(max=max,min=min),第二輸入的數大於前面的最大值或者小於前面的最小值,那么該數取代前面的最大值或者最小值,成為新的最大值或最小值(見25~28行代碼)。
最后,還需要考慮終止該程序的必要性,這里分兩種情況:第一,沒輸入任何數字退出(見6~7行代碼)。第二,輸入有限個數字退出(見15~19行代碼)。這里要注意的是第17行代碼,為什么要count-1,這是因為如果輸入的是quit,quit本身也是占據了一個count值。