如何找到列表中没有的最大数字?

时间:2018-09-12 21:50:34

标签: python

我正在尝试制作一个程序,为您提供输入的平均数,总数和最大数。我被困在最大的部分。我的电话号码不在列表中,所以我不知道如何找到最大的电话号码。

num=0 
total=0 
average=0 
count=0 

while True: 
  num=input("enter a number:")
  num=int(num) 
  if num==-999: 
    break 
  total=total + num
  count=count+1 
  biggest = max(total)

average=total/count 

#print the results
print("the total is:", total)
print("the biggest number is:", biggest)
print("the average is:", average)

我希望它最后打印最大的数字。

谢谢

7 个答案:

答案 0 :(得分:2)

num=0 
total=0 
average=0 
count=0
biggest=0

while True: 
  num=input("enter a number:")
  num=int(num) 
  if num==-999: 
    break 
  total=total + num
  count=count+1 
  if num > biggest:
      biggest = num

average=total/count 

#print the results
print("the total is:", total)
print("the biggest number is:", biggest)
print("the average is:", average)

答案 1 :(得分:1)

您可以:

if num > biggest:
   biggest = num

答案 2 :(得分:0)

使用不能大于任何输入的值初始化最大值:

import numpy
biggest = -np.inf

替换

biggest = max(total)

作者

biggest = max(biggest, num)

答案 3 :(得分:0)

在循环之前初始化变量biggest

biggest = -9999

应将其初始化为小于程序将要遇到的任何数字的东西。以上假设-9999是一个数字,这通常是一个错误的假设;有更好的方法可以做到这一点,例如评论之一建议

import sys
biggest = -sys.maxint

这是此实现可以表示的最大整数值的负数。

然后在循环体中,更新变量biggest

biggest = max(biggest, num)

如果num大于biggest,则max(biggest, num)将返回num的值,以便biggest将获得num的值。如果较小,则biggest将保持不变。换句话说,biggest会记住迄今为止看到的最大值。在循环结束时,它将保持看到的最大值,即周期。

答案 4 :(得分:0)

在这里将您的代码设置为正确

num=0 
total=0 
average=0 
count=0 
biggest = None  ### added

while True: 
  num=input("enter a number:")
  num=int(num)
  if num==-999: 
    break 
  total=total + num
  count=count+1 

  #biggest = max(total)   Here where was you wrong
  if num > biggest :   #### added
     biggest = num     #### added

average=total/count 

#print the results
print("the total is:", total)
print("the biggest number is:", biggest)
print("the average is:", average)

答案 5 :(得分:0)

让我为您分享解决问题的方法。 (检查数字为“ -999”后,看看if子句)。随时问您有什么问题!希望对您有帮助

num=0 
total=0 
average=0 
count=0
biggest=0 

while True: 
  num=input("enter a number:")
  num=int(num) 
  if num==-999: 
    break
  if num > biggest:
    biggest = num
  total=total + num
  count=count+1 

average=total/count 

#print the results
print("the total is:", total)
print("the biggest number is:", biggest)
print("the average is:", average)

答案 6 :(得分:0)

如果您研究其他方法,您将获得更多功能,甚至对程序进行更多操作,请看一下这段代码,并尝试一些想法,以使您的任务和以后的任务变得更容易 >

numbers = []

print("Enter any non-number to perform calculations.\n")

while True:
    try:
        num = int(input("Enter a number: "))
        numbers.append(num)

    except ValueError:
        break

total = sum(numbers)
average = total/len(numbers)
biggest = max(numbers)

print(f"\nThe total is: {total}")
print(f"The biggest number is: {biggest}")
print(f"The average is: {average}")
(xenial)vash@localhost:~/python$ python3.7 biggest.py
Enter any non-number to perform calculations.

Enter a number: 1
Enter a number: 2
Enter a number: 3
Enter a number: 4
Enter a number: -1
Enter a number: 2
Enter a number: 3
Enter a number: q

The total is: 14
The biggest number is: 4
The average is: 2.0