用Python创建排行榜-代码说明

时间:2019-05-24 02:58:46

标签: python python-3.x

一个用户上传了此排行榜代码,该代码可以正常工作,但没有解释。有人可以解释一下,以便我将其修改为我的代码。

import csv

score=input("whats ya score")
username=input("whats ya name")

with open ("protleader.csv", "a", newline='') as file:
    fields=['score', 'name']
    writer=csv.DictWriter(file, fieldnames=fields)
    writer.writerow({'score' : score, 'name' : username})

with open ("protleader.csv", "r") as file:
    sortlist=[]
    reader=csv.reader(file)
    for i in reader:
        sortlist.append(i)
for i in range(len(sortlist)):
    if i != 0:
        sortlist[i][0]=int(sortlist[i][int(0)])


print("")

print("Unsorted:")
for i in range(len(sortlist)):
    print(sortlist[i])


for i in range(555):
    for i in range(len(sortlist)-1):
        if i != 0:
            if sortlist[i][0] < sortlist[i+1][0]:
                change=sortlist[i]
                sortlist[i]=sortlist[i+1]
                sortlist[i+1]=change


print("")

print("Sorted and cut:")
for i in range(len(sortlist)-1):
    print(sortlist[i])

下面的代码是我改编的代码,但是它显示了多个不同的页首横幅,我无法对其进行更改!任何帮助都会很棒!

import csv

            score=input("whats ya score")
            username=input("whats ya name")


            with open ("protleader.csv", "a", newline='') as file:
                fields=['score', 'name']
                writer=csv.DictWriter(file, fieldnames=fields)
                writer.writerow({'score' : score, 'name' : username})

            with open ("protleader.csv", "r") as file:
                sortlist=[]
                reader=csv.reader(file)
                for i in reader:
                    sortlist.append(i)
                    for i in range(len(sortlist)):
                        if i != 0:
                            sortlist[i][0]=int(sortlist[i][int(0)])


                    print("")

                    for i in range(len(sortlist)):
                        (sortlist[i])


                    for i in range(1000):
                        for i in range(len(sortlist)-1):
                            if i != 0:
                                if sortlist[i][0] < sortlist[i+1][0]:
                                    change=sortlist[i]
                                    sortlist[i]=sortlist[i+1]
                                    sortlist[i+1]=change


                    print("")

                    print("Leaderboard:")
                    for i in range(len(sortlist)-1):
                        print(sortlist[i])


            break

我尝试更改它,但是会导致错误消息。我希望它只显示一个排行榜。文件中包含人民得分:enter image description here

2 个答案:

答案 0 :(得分:0)

尝试一下,可能有帮助

使用try和python除外


please view this image for the code

答案 1 :(得分:0)

请尝试使用以下代码

import csv

score=input("whats ya score : ")
if score.isalpha():
    print("Invalid Score")
else:
    username=input("whats ya name : ")
    if username.isnumeric():
        print( "Invalid Name" )
    else:
        with open ("protleader.csv", "a", newline='') as file:
            fields=['score', 'name']
            writer=csv.DictWriter(file, fieldnames=fields)
            writer.writerow({'score' : score, 'name' : username})

        with open ("protleader.csv", "r") as file:
            sortlist=[]
            reader=csv.reader(file)
            for i in reader:
                sortlist.append(i)
        for i in range(len(sortlist)):
            if i != 0:
                sortlist[i][0]=int(sortlist[i][int(0)])


        print("")

        print("Unsorted:")
        for i in range(len(sortlist)):
            print(sortlist[i])


        for i in range(555):
            for i in range(len(sortlist)-1):
                if i != 0:
                    if sortlist[i][0] < sortlist[i+1][0]:
                        change=sortlist[i]
                        sortlist[i]=sortlist[i+1]
                        sortlist[i+1]=change


        print("")

        print("Sorted and cut:")
        for i in range(len(sortlist)-1):
            print(sortlist[i])