Je veux que l'utilisateur choisisse un élément de Inventory_price (dictionnaire) et s'il correspond à la clé du dictionnaire, il donne la valeur en tant que sortie.
J'ai essayé une instruction conditionnelle pour résoudre le problème mais je n'ai pu aller nulle part .
inventory_price = {
'hair_jel' : 1200,
'hair_oil' : 500,
'facial_kit' : 2900,
'moisturising_cream' : 200,
'comb' : 150 ,
'scissors' : 300,
'hair_color' : 450
}
price = input("What is the price of {} : ".format(inventory_price.keys()))
if price == inventory_price.keys():
print(inventory_price.values())
Je m'attendais à ce qu'il renvoie la valeur de la clé dans le dictionnaire.
4 Réponses :
Vous ne vérifiez pas si une clé est présente dans le dictionnaire en faisant price == stock_price.keys () , vous le faites en vérifiant l'appartenance en utilisant le dans en faisant if price in stock_price ou if price in inventory_price.keys () , en ce moment vous comparez une chaîne à une liste, ce qui n'est pas correct
Vous n'obtenez pas la valeur d'une clé en faisant Inventory_price.values () , vous le faites en faisant Inventory_price.get (price) ou prix_inventaire [prix] , vous imprimez actuellement toutes les valeurs disponibles
Vous pouvez améliorer la mise en forme de Quel est le prix .. Imprimer la déclaration en convertissant les clés en une liste via list (stock_price.keys ())) code >
Donc le code mis à jour sera
What is the price of ['hair_jel', 'hair_oil', 'facial_kit', 'moisturising_cream', 'comb', 'scissors', 'hair_color'] :comb 150 What is the price of ['hair_jel', 'hair_oil', 'facial_kit', 'moisturising_cream', 'comb', 'scissors', 'hair_color'] :brush Not Listed
Ou une manière optimisée est d'utiliser dict.get qui renvoie la valeur si la clé est présente, else renvoie une valeur prédéfinie, par exemple Non répertorié dans ce cas
inventory_price = {'hair_jel' : 1200, 'hair_oil' : 500, 'facial_kit' :
2900, 'moisturising_cream' : 200, 'comb' : 150 , 'scissors' : 300,
'hair_color' : 450}
price = input("What is the price of {} :".format(list(inventory_price.keys())))
#If key is present in dictionary, print the value, else print Not Listed
print(inventory_price.get(price, 'Not Listed'))
La sortie sera
inventory_price = {'hair_jel' : 1200, 'hair_oil' : 500, 'facial_kit' :
2900, 'moisturising_cream' : 200, 'comb' : 150 , 'scissors' : 300,
'hair_color' : 450}
price = input("What is the price of {} :".format(list(inventory_price.keys())))
#If key is present in dictionary
if price in inventory_price:
#Get the price
print(inventory_price[price])
C'est parce que la ligne price == stock_price.keys () compare si price est égal aux clés du dictionnaire.
Vous devez vérifier si la valeur du prix contient dans dictionnaire
Exemple: si prix en inventaire_prix
Si c'est vrai, sélectionnez les valeurs à l'aide du sélecteur dictionary [key]
inventory_price = {'hair_jel': 1200, 'hair_oil': 500, 'facial_kit': 2900,
'moisturising_cream': 200, 'comb': 150, 'scissors': 300,
'hair_color': 450}
price = input("What is the price of {} :".format(inventory_price.keys()))
if price in inventory_price:
print(inventory_price[price])
Je pense que vous avez besoin de quelque chose comme ça
inventory_price = {'hair_jel': 1200, 'hair_oil': 500, 'facial_kit':
2900, 'moisturising_cream': 200, 'comb': 150, 'scissors': 300,
'hair_color': 450}
price_key = input("What is the price of {}:".format(inventory_price.keys()))
default_price = "Price for '{}' Not Found".format(price_key)
price = inventory_price.get(price_key, default_price)
print(price)
Si vous voulez que tous les éléments de valeur utilisent
.values ()pour obtenir toutes les valeurs et si vous voulez tous les éléments au format(clé, valeur)utilisez.items () < / code> méthodeIl vous manque la bonne façon de vérifier une
cléet d'utiliser cetteclépour trouver une valeur @DaniyalShahbaz