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

     

     

     

  • 相关阅读:
    threading.Timer 返回值
    AttributeError: 'FileEventHandler' object has no attribute 'core'
    JS限制内容显示多少个字符
    #1115
    python实现读取文件夹下所有文件内容
    【css】响应式布局 @media媒介 适配平板手机
    js实现canvas保存图片为png格式并下载到本地
    Css+Div设置电脑端显示,手机端不显示代码
    禁止F12代码
    git pull fatal: unable to access OpenSSL SSL_read: Connection was reset, errno 10054
  • 原文地址:https://www.cnblogs.com/linfengs/p/11597687.html
Copyright © 2020-2023  润新知