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

问题描述 投票:0回答:7

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

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)

我想在最后打印最大的数字。

谢谢

python
7个回答
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)

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
投票

你可以这样:

if num > biggest:
   biggest = num

0
投票

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

import numpy
biggest = -np.inf

更换

biggest = max(total)

通过

biggest = max(biggest, num)

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)

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

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记得到目前为止看到的最大价值。在循环结束时,它将保持所见的最大值,周期。

© www.soinside.com 2019 - 2024. All rights reserved.