【发布时间】:2012-09-07 21:35:06
【问题描述】:
作为家庭作业,我必须编写一个脚本,它可以在不使用 Python 的标准排序函数的情况下找到 3 个给定数字的中位数。
这是我上课的第一周,也是我的第一次编程体验,所以我发现很难比现在更进一步。
这是我目前所拥有的:
def med3(a,b,c):
list = [a, b, c]
newlist = []
if list:
minimum = list[0]
for x in list:
if x < minimum:
minimum = x
newlist.append(minimum)
list.remove(minimum)
elif x >= minimum:
newlist.append(x)
list.remove(x)
return newlist[1]
这似乎可以解决问题,但仅适用于列表的前两个条目。该循环不包括第三个条目。
如何使脚本包含所有三个条目?
提前致谢! 砂光机
【问题讨论】:
-
工作量太大。在不使用循环和列表的情况下定义“中位数”在 3 个数字的上下文中的含义。
-
那里有很多真正不需要的代码。也因为这是作业,你自己想办法,不是我们帮你做的……
-
欢迎来到 Stack Overflow!这里有许多不必要的步骤。例如,
if list:是不必要的:您刚刚定义了列表。但一般来说,您不需要列表或循环。提示:您可以使用三个if语句来执行此操作,每个语句都使用一个or。 -
我建议找出一种技术来找出 3 个给定数字的中位数在你的脑海中。用英语写下这个技巧,就像给别人一个食谱一样。最后使用编程语言对这种技术进行编码。 (将您的文本称为伪代码,您就是真正的程序员;-)