Je suis extrêmement nouveau dans le codage et je dois terminer un projet pour l'école où j'écris un code pour une compétition de surf imaginaire qui prend les noms et les scores saisis par l'utilisateur, puis les imprime dans l'ordre du score le plus élevé au score le plus bas à l'aide d'un dictionnaire Ex: Tim: 32 Dave: 12 Gabe: 2

C'est ce que j'ai jusqu'à présent

surf_list ={}
print("What are the names of the surfers?")
name = input("surfer: ")
score = input("score: ")
surf_list[name] = score

Quelqu'un peut-il me diriger dans une meilleure direction pour réussir ce projet?

0
gabe shields 25 janv. 2021 à 08:37

2 réponses

Meilleure réponse
n = int(input("Please enter number of surfers"))
surf_list ={}
print("What are the names of the surfers?")
for i in range(n):
    name = input("surfer: ")
    score = int(input("score: "))
    surf_list[name] = score
    #sort dictionary based on scores
res = {k: v for k, v in sorted(surf_list.items(), key=lambda item: item[1])}
for i,j in res.items():
    print("Name:",i,"Score:",j)

Une autre méthode utilisant la boucle while. Ici, au lieu de prédéfinir le nombre de surfeurs, vous pouvez vous arrêter entre la boucle

is_another_surfer = True 

surf_list ={}
print("What are the names of the surfers?")
while is_another_surfer:
    name = input("surfer: ")
    score = int(input("score: "))
    surf_list[name] = score
    #sort dictionary based on scores
    has_another = input("Do you want to add another surfer. Press Y or N")
    if has_another.lower() == 'n':
        is_another_surfer = False

res = {k: v for k, v in sorted(surf_list.items(), key=lambda item: item[1])}
for i,j in res.items():
    print("Name:",i,"Score:",j)
2
SAI SANTOSH CHIRAG 25 janv. 2021 à 06:00

Votre code doit changer légèrement trouver le code ci-dessous pour référence

class my_dictionary(dict): 
  
    # __init__ function 
    def __init__(self): 
        self = dict() 
          
    # Function to add key:value 
    def add(self, key, value): 
        self[key] = value 
  
#  Class instance
print("What are the names of the surfers?")
dict_obj = my_dictionary() 

while True:
    
    name = input("enter name: ")
    score = int(input("enter score: "))
    dict_obj.add(name,score) 
    for k in sorted(dict_obj, key=dict_obj.get, reverse=True):
        print(k,":",dict_obj[k])
0
Saleem Shaik 25 janv. 2021 à 06:10
65879485