En plein apprentissage

Résolu/Fermé
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 - Modifié par Synerz le 1/08/2016 à 10:49
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 - 2 août 2016 à 17:59
Bonjour,

Je travail sur code academy afin d'apprendre le Python mais je bloque sur un exercice.
Je ne demande pas de me mâcher le travail mais de m'orienter :)

Voici l'énoncé :
Ajoutez une clé à inventaire appelée 'poche'.
Configurez la valeur de 'poche' pour être une liste composée des strings 'coquillage', 'groseille' et 'chiffon'.
Ordonnez (.sort()) les éléments dans la liste stockée sous la clé 'backpack'.
Ensuite, enlevez .remove(poignard) des éléments de la liste stockés sous la clé 'backpack'.
Ajoutez 50 au nombre stocké sous la clé 'or'.

Voici le code de base :
inventaire = {
    'or' : 500,
    'poche' : ['silex', 'ficelle', 'pierre'], # Affectez une nouvelle liste à la clé 'poche'
    'backpack' : ['xylophone','poignard', 'tente','pain']
}

# Ajoutez une clé 'sac_toile' et affectez-lui une liste
inventaire['sac_toile'] = ['pomme', 'petit_rubis', 'paresseux_trois_doigts']

# Ordonnez la liste trouvée sous la clé 'poche'
inventaire['poche'].sort() 

# Tapez votre code ici!


Et voila ce que j'ai fais :

inventaire = {
    'or' : 500,
    'poche' : ['silex', 'ficelle', 'pierre'], # Affectez une nouvelle liste à la clé 'poche'
    'backpack' : ['xylophone','poignard', 'tente','pain'],
    'poche': ['coquillage','groseille','chiffon'],
}


# Ajoutez une clé 'sac_toile' et affectez-lui une liste
inventaire['sac_toile'] = ['pomme', 'petit_rubis', 'paresseux_trois_doigts']

# Ordonnez la liste trouvée sous la clé 'poche'
inventaire['poche'].sort()
inventaire["backpack"].sort()

# Tapez votre code ici!
inventaire["backpack".remove('poignard')
inventaire['or'].append(50)


Voici ma première question, il me demande d'ajouter une key 'poche' alors qu'elle existe déjà.
Ensuite si je met pas les virgules a la fin des listes la console me met une erreur bizarre non ?
Et ma dernière question c'est quand je valide mon code final il me met une erreur sur l'ajout de 50 a la key or et je ne comprends pas pourquoi ça marche pas. J'ai essayé de différente manière

#cela
inventaire['or'].append(50)
#Et cela 
inventaire['or']=50



Merci d'avance :)
Un peu d'aide contre un topic résolu !

1 réponse

Salut,

inventaire = {
'or' : 500,
'poche' : ['silex', 'ficelle', 'pierre'], # Affectez une nouvelle liste à la clé 'poche'
'backpack' : ['xylophone','poignard', 'tente','pain']
}


Le commentaire de ligne t'indique tout simplement de modifier la valeur de l'item "poche" existant, il ne faut pas créer un nouvel item poche, et il ne faut jamais créer une clé d'un dictionnaire en double, même si python ne bronche pas, car faire ce genre de choses conduira à des erreurs.

Ensuite si je met pas les virgules a la fin des listes la console me met une erreur bizarre non ?

Non, c'est parfaitement normal, c'est un séparateur, que ce soit dans les listes, tuples et dictionnaires ;)

Et ma dernière question c'est quand je valide mon code final il me met une erreur sur l'ajout de 50 a la key or et je ne comprends pas pourquoi ça marche pas

inventaire['or'] est de type int.
En sachant ceci, tu dois déjà savoir comment ajouter un nombre à un nombre.
nb = 5000
# Ajout de 50 à nb
?

append est une méthode de la class list.

nb : essaies de mettre un titre parlant à tes sujets ,)
0
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116
Modifié par Synerz le 2/08/2016 à 09:28
Salut,

Merci de ta nouvelle réponse cette fois ci c'est sûr je te donne ta pierre lune pour que tu évolue haha
Ah oui c'est vrai qu'il faut une virgule pour les préparer en plus je le sais...
J'ai essayé avec le = j'ai une erreur de syntaxe.
inventaire['or'] =50

je pense que le problème est que je dois juste l'ajouter et que la façon de faire de juste plus haut lui donne que la valeur 50
0
roudoudou > Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017
2 août 2016 à 17:16
J'ai essayé de te donner la piste à suivre, mais ça n'a pas marché :D

Je pense que tu sais comment faire, mais que tu cherches les complications, alors que ce qui est demandé est certainement une des premières choses que tu as dû voir.

L'énoncé demande d'ajouter 50 à la valeur de 'or'
En gros, il te demande d'incrémenter cette valeur de 50.

Version basique :
inventaire['or'] = inventaire['or'] + 50


Version simplifiée (et à utiliser)
inventaire['or'] += 50
0
Synerz Messages postés 1221 Date d'inscription mercredi 5 juin 2013 Statut Membre Dernière intervention 27 décembre 2017 116
2 août 2016 à 17:59
AH oui effectivement je cherchais bien plus compliqué... merci de ton aide encore
0