Python While循环:所有数字的总和,但最大

时间:2016-10-31 00:45:49

标签: python function loops while-loop sum

嗨所以我的问题是我必须创建一个要求用户输入一系列的功能 数字大于或等于零,一次一个。用户输入end表示 没有更多的数字。该函数计算输入的所有值的总和 除了系列中的最大值。 (想想这是最高的 从一系列家庭作业得分的家庭作业得分。)然后功能打印出来 求和并返回总和。您可以假设用户输入有效:它们将是a 数字大于或等于零,或字符串结束。以下是一些示例 该函数应该表现如下:

>>> allButMax()
Enter next number: 20
Enter next number: 30
Enter next number: 40
Enter next number: end
The sum of all values except for the maximum value is: 50.0
50.0
>>> allButMax()
Enter next number: 1.55
Enter next number: 90
Enter next number: 8.45
Enter next number: 2
Enter next number: end
The sum of all values except for the maximum value is: 12.0
12.0
>>> x = allButMax()
Enter next number: 3
Enter next number: 2
Enter next number: 1
Enter next number: end
The sum of all values except for the maximum value is: 3.0
>>> print(x)
3.0
>>> allButMax()
Enter next number: end
The sum of all values except for the maximum value is: 0
0

任何人都可以帮我这个吗?到目前为止,我有这个(这也必须是一个while循环)

def allButMax():
    while True:
        number=float(input("Enter next number: "))
        if number="end":
            break
    "end"=0

我不知道的是,我不知道如何添加除最大值以外的所有值。函数如何知道哪个值是最大值?我还需要使用另一个while循环来添加所有数字吗?

1 个答案:

答案 0 :(得分:0)

我为此写了答案,但后来从之前的回答中看到我并不打算这样做。这是真的,你需要做你的功课并自己解决这个问题,但这里有一些指示:

  1. 你的函数在while循环中运行,但你可以跟踪while循环之外的变量,每次循环时你的“max_number”都可以重新分配一个不同的值:

    
    def allButMax():
        max_number = 0
        while True:
            print "running while loop"
            break
    
  2. 您不需要使用列表,输出数字只是加起来的所有数字减去最大数字。

    
    return total_numbers - max_numer
    
  3. 您的函数需要返回一个值,因此请使用“return”关键字。

  4. 最后,您可能需要查找“try”和“except”关键字来评估用户的输入。用户是否为您提供了数字或字符串?

    
    try:
        int(user_input)
    except ValueError:
        #user input is a string
    
  5. 希望这会有所帮助而不会放弃太多:)

    一切顺利!