嗨所以我的问题是我必须创建一个要求用户输入一系列的功能 数字大于或等于零,一次一个。用户输入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循环来添加所有数字吗?
答案 0 :(得分:0)
我为此写了答案,但后来从之前的回答中看到我并不打算这样做。这是真的,你需要做你的功课并自己解决这个问题,但这里有一些指示:
你的函数在while循环中运行,但你可以跟踪while循环之外的变量,每次循环时你的“max_number”都可以重新分配一个不同的值:
def allButMax():
max_number = 0
while True:
print "running while loop"
break
您不需要使用列表,输出数字只是加起来的所有数字减去最大数字。
return total_numbers - max_numer
您的函数需要返回一个值,因此请使用“return”关键字。
最后,您可能需要查找“try”和“except”关键字来评估用户的输入。用户是否为您提供了数字或字符串?
try:
int(user_input)
except ValueError:
#user input is a string
希望这会有所帮助而不会放弃太多:)
一切顺利!