【问题标题】:Maximum and minum value using loop function使用循环函数的最大值和最小值
【发布时间】:2019-09-18 13:52:57
【问题描述】:

我想在不使用列表函数的情况下通过循环找到最小值和最大值。代码完美运行,我只是得到与最小值相同的最大值?

import math

Choice= ''
sum=0

while Choice!='3':
    print ('1- Amount of rain per month')
    print('2- See statistic for this year')
    print('3- Finish')
    val= input ('Your choice:')

    if Choice== '1':

        for x in range (1,13):
            rain= input ('Give the number of month'+ str(x)+ ':')
            rain=float(rain)
            sum+=rain
            print('Sum:', sum)

    if val== '2':
        print('The average in a year:', sum/12)
        minVal=0
        minVal<rain
        minVal=rain
        print('Minimum value:', minVal)
        maxVal=0
        rain > maxVal
        maxVal=rain
        print('Maximum value:', maxVal)


if Choice=='3':
        print('Finish')

【问题讨论】:

  • ...完美运行,而 max==min 自相矛盾...
  • rain &gt; maxVal 是一个返回 True 或 False 的比较......但你什么也不做。您也只有总和 - 而不是存储的单个月份值。您需要将月份的值存储到列表中 - 然后您可以遍历列表并获取最小值和最大值。或者,当新的 jnumber 更大/更低时,您首先定义最小/最大值并在输入时调整您的“记忆”最小/最大值。解决这个问题意味着重写你的整个代码——你可能想浏览一些教程来掌握列表和循环的窍门。

标签: python-3.x


【解决方案1】:
Choice= ''
sum=0
minVal = 0
maxVal = 0

while Choice!='3':
    print ('1- Amount of rain per month')
    print('2- See statistic for this year')
    print('3- Finish')
    Choice = input ('Your choice:')

    if Choice== '1':

        for x in range (1,13):
            rain= input ('Give the number of month'+ str(x)+ ':')
            rain=float(rain)
            sum+=rain
            print('Sum:', sum)
            if minVal >rain or minVal == 0:
                minVal = rain
            if rain > maxVal or maxVal == 0:
                maxVal = rain

    if Choice == '2':
        print('The average in a year:', sum/12)
        print('Minimum value:', minVal)
        print('Maximum value:', maxVal)


if Choice=='3':
        print('Finish')

这就是你的问题的解决方案!

【讨论】:

  • 非常感谢您的帮助:)
  • @Mahsa 很高兴为您提供帮助
  • @Mahsa What should I do when someone answers my question? 人们倾向于花大量时间彻底回答问题。如果解决方案回答了您的问题,请检查它,或者如果它不能解决问题,请发表评论。谢谢。
  • @Trenton_M 非常感谢!
【解决方案2】:

是你想要的这个程序吗?

import math

val= ''
sum=0
count=0
min=0
max=0

while val!='3':
 print ('1- Amount of rain per month')
 print('2- See statistic for this year')
 print('3- Finish')
 val= input ('Your choice:')

 if val== '1':

  for x in range (1,13):
    rain= input ('Give the number of month'+ str(x)+ ':')
    rain=float(rain)
    if count == 0:
      min = rain
      max = rain
      count=1
    else:
      if (min > rain):
          min = rain
      if (max < rain):
          max = rain
    sum += rain
    print('Sum:', sum)

 if val == '2':
     print('The average in a year:', sum / 12)
     print('Minimum value:', min)
     print('Maximum value:', max)
 if val == '3':
     print('Finish')

【讨论】:

  • 我试过这段代码,我仍然得到与最小值相同的最大值
  • 你可以在rain=float(rain)下写第二个代码(以if(count==0)开头),因为比较多。我统一分享给大家。
猜你喜欢
  • 2021-06-17
  • 2016-10-06
  • 2018-09-21
  • 2021-11-27
  • 1970-01-01
  • 2013-10-05
  • 1970-01-01
  • 1970-01-01
  • 2019-09-18
相关资源
最近更新 更多