我有一个我正在研究的问题:
问题:最终测验分数的计算方法是将所有分数相加,但最低的两个分数除外。编写一个程序,利用列表打印出最后的分数。在
尝试:我认为我的一切都是正确的,只是我不确定应该在“main”函数下编写什么代码。这是我的代码:
def main():
scores = readFloats(values)
removeMinimum(scores)
removeMinimum(scores)
total = sum(scores)
print("The final score is", total)
def readFloats(values):
values = []
userInput = input("Please enter a value or Q to quit: ")
while userInput != "Q":
n = float(userInput)
values.append(n)
userInput = input("Please enter a value or Q to quit: ")
return values
def removeMinimum(values):
smallest = values[0]
for i in range(len(values)):
if values[i] < smallest:
smallest = values[i]
values.remove(smallest)
main()
当我试图运行这个程序时,它说'values'这个名称没有在'main'函数中定义。我不知道怎样才能把参考号找对。应提示用户输入值,如果输入的值为8、4、7、8.5、9.5、7、5、10,则输出应为50。有人能告诉我我的错误在哪里吗?在
您的错误是由于您在第一次调用函数
readFloats(values)
时使用了名称values
,而没有为values
提供实际值。在由于用户使用
readFloats
函数输入值,所以实际上不需要向它传递参数。从readFloats
中删除参数values
将使其正确执行:另外,请注意Python附带了一组^{} 函数,它们在这样的上下文中非常有用。像
min()
和max()
这样的函数将派上用场。在只需简单地通过List Comprehension:
根据您的代码:
^{pr2}$输出:
在Python中,您可以通过在变量中添加一些内容来实例化它:您还没有这样做。您正在向readFloats方法传递名为“values”的内容,但没有在其中放入任何内容,因此该变量不存在,Python也找不到它。在传递给readFloats之前,将一些内容放入“values”中。告诉Python这是一个float数组。在
相关问题 更多 >
编程相关推荐