为何我的排序函数不起作用?(Python)

2024-09-30 12:35:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我的代码都能正常工作,列表也能正常工作,但由于某种原因,当我尝试对其排序时,列表不会按升序排序,而是按随机顺序排序命令。所以当列表发生变化时,它不会按降序排列。当我尝试x.sort(reverse=True)时,弹出一条错误消息,说它不能是整数形式。 有人能帮我吗?你知道吗

score=input('What is your score?')
Scorefile=open('score.txt','a')
Scorefile.write(score)
Scorefile.write("\n")
Scorefile.close()
Scorefile = open('score.txt','r')
with open('score.txt','r') as Scorefile:
     scores=Scorefile.readline()
     List=[]
     while scores:
           scores2=(scores.strip())
           int(scores2)
           List.append(scores2)
           scores=Scorefile.readline()
List.sort()
print(List)
#Output(not in ascending order)
['12', '12', '12', '12', '12', '13', '15', '17', '4', '5', '6']

Tags: 代码txt列表readline排序顺序opensort
2条回答

它不是排序数字,而是排序字符串。作为字符串,它们被排序。你知道吗

你可以通过改变这条线来解决这个问题

        int(scores2)

对这件事。你知道吗

        scores2 = int(scores2)

现在您正在将值转换为整数,但实际上并没有在任何地方使用该整数。我想这就是混乱的根源。你知道吗

元素是字符串(类型str),而不是整数(类型int)。您的代码目前似乎是按字母顺序排序。你知道吗

在排序之前,请尝试将元素转换为int。更改代码中的以下行:

int(scores2)
List.append(scores2)

对此:

List.append(int(scores2))

一行上的语句int(scores2)本身没有任何用处,您必须使用int()的输出。你知道吗

相关问题 更多 >

    热门问题