例子:循環語句--輸入N個整數,判斷最大值,最小值,和,平均值。


 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值。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM