例子:循环语句--输入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