我有一个反射测试游戏并设置了一个文本文件,用于存储用户的名字和分数,中间有空格。如何以数字方式对文本文件进行排序,以使最低数字位于顶部,最高位于底部
E.g
Ben 1.43
Eric 3.53
史蒂夫7.45我想要包含2位小数。
代码:
import time
import random
global start
global end
global score
def gameBegin():
print('***************')
print('* Reflex Game *')
print('***************')
print("\nPress Enter as soon as you see the word 'stop'.")
print('Press Enter to Begin')
input()
def gameStart():
global start
global end
time.sleep(random.randint(1,1))
start = time.time()
input('STOP')
end = time.time()
def gameScore():
global start
global end
global score
score=round(end-start,2)
print (score)
def scorePrint():
global score
with open("Leaderboards.txt", "r+") as board:
print (board.read())
def boardEdit():
global score
name = input('Enter Your Name For The Leader Board : ')
board = open ("Leaderboards.txt","a+")
board.write(name )
board.write(" ")
board.write(str(score) )
def boardSort():
#HELP
gameBegin()
gameStart()
gameScore()
scorePrint()
boardEdit()
boardSort()
答案 0 :(得分:1)
查看此链接https://wiki.python.org/moin/HowTo/Sorting 这将帮助您完成所需的任何类型。
但要做你要求的事情,你需要在打印排行榜之前进行排序
简单的升序排序非常简单 - 只需调用sorted()函数即可。它返回一个新的排序列表:
sorted([5, 2, 3, 1, 4])
然后变成
[1, 2, 3, 4, 5]
您还可以使用列表的list.sort()方法。它就地修改列表(并返回None以避免混淆)。通常它比sorted()更不方便 - 但是如果你不需要原始列表,它会更有效率。
>>>a = [5, 2, 3, 1, 4]
>>>a.sort()
>>>a
[1, 2, 3, 4, 5]