【发布时间】:2017-03-13 02:59:49
【问题描述】:
您好,我的问题是我必须创建一个函数,要求用户输入一系列 大于或等于零的数字,一次一个。用户输入 end 表示 没有更多的数字了。该函数计算所有输入值的总和 除了系列中的最大值。 (认为这是下降的最高 来自一系列家庭作业分数的家庭作业分数。)然后该函数都打印 sum 并返回总和。您可以假设用户输入是有效的:它们要么是 大于或等于零的数字,或字符串结尾。这里有一些例子说明如何 该函数的行为应该是:
>>> 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循环来添加所有数字吗?
【问题讨论】:
-
所以?你有什么问题?
-
该代码甚至不接近。请做好自己的功课。必要时阅读指导材料(有必要)。
-
你能在临时缓冲区中存储值吗?
-
如果您不能使用临时缓冲区,只需将所有值相加并跟踪最大值,最后减去最大值即可。
-
if number > maximum: maximum = number
标签: python function loops while-loop sum