2024-06-26 08:21:40 发布
网友
对于我的软件专业,我必须创建一个程序。总之,在将高分列表写入文件之前,需要对其进行排序。为此,我使用了冒泡排序,但不能使用内置的排序函数。从中读取数据的文本文件存储在嵌套列表中。文本文件如下所示:
NameOne 10 NameTwo 15 NameThree 9
这是我有但不起作用的冒泡排序代码:
我需要把分数从高到低排序。任何帮助将不胜感激,你将适当地记入我的计划学分:)。谢谢。在
在第一次迭代之后,您正在执行b_not_sorted = False,但它不应该在那里!算法在完成排序之前就停止了。
b_not_sorted = False
您应该改为只做b_not_sorted = True操作if highest_scores[counter] < highest_scores[counter + 1]
b_not_sorted = True
if highest_scores[counter] < highest_scores[counter + 1]
另外,在Python中交换代码看起来会更好。不要使用temp_var,只需执行以下操作:
temp_var
highest_scores[counter], highest_scores[counter+1] = highest_scores[counter+1], highest_scores[counter]
Python样式指南建议您不要在if语句中编写== True或{}。这样做:
if
== True
这里有个提示:
检查外部while循环运行了多少次。它应该运行不止一次,对吗?不管发生什么,总会发生什么导致循环退出?
while
试着逐行检查代码,看看每一点都发生了什么。
外循环末尾的语句b_not_sorted = False将导致只执行一次后外循环退出。您需要将该语句移到代码的另一部分。试着把你脑子里的b_not_sorted改成I_still_need_to_go_through_the_list:
b_not_sorted
I_still_need_to_go_through_the_list
显然在第一行:
while I_still_need_to_go_through_the_list:
这应该是真的,因为你根本没看清单。你不知道是不是有秩序。
在台词后面:
当然,我们还需要再做一次检查,因为我们只是对列表进行了更改,需要确保不再需要进行进一步的更改。
但是如果没有改变呢?I_still_need_to_go_through_the_list应该是{}。如果我们把I_still_need_to_go_through_the_list = False右在for循环之前,那么它将是False,除非我们对列表进行更改,这正是我们想要的。
I_still_need_to_go_through_the_list = False
for
False
在第一次迭代之后,您正在执行
b_not_sorted = False
,但它不应该在那里!算法在完成排序之前就停止了。您应该改为只做
b_not_sorted = True
操作if highest_scores[counter] < highest_scores[counter + 1]
另外,在Python中交换代码看起来会更好。不要使用
temp_var
,只需执行以下操作:Python样式指南建议您不要在}。这样做:
^{pr2}$if
语句中编写== True
或{这里有个提示:
检查外部
while
循环运行了多少次。它应该运行不止一次,对吗?不管发生什么,总会发生什么导致循环退出?试着逐行检查代码,看看每一点都发生了什么。
外循环末尾的语句
b_not_sorted = False
将导致只执行一次后外循环退出。您需要将该语句移到代码的另一部分。试着把你脑子里的b_not_sorted
改成I_still_need_to_go_through_the_list
:显然在第一行:
这应该是真的,因为你根本没看清单。你不知道是不是有秩序。
在台词后面:
^{pr2}$当然,我们还需要再做一次检查,因为我们只是对列表进行了更改,需要确保不再需要进行进一步的更改。
但是如果没有改变呢?}。如果我们把
I_still_need_to_go_through_the_list
应该是{I_still_need_to_go_through_the_list = False
右在for
循环之前,那么它将是False
,除非我们对列表进行更改,这正是我们想要的。相关问题 更多 >
编程相关推荐