0
votes

Je veux que l'utilisateur demande le prix des articles à partir de l'inventaire_prix (dictionnaire) afin qu'il puisse imprimer les valeurs des clés et les donner en sortie

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.


2 commentaires

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éthode


Il vous manque la bonne façon de vérifier une clé et d'utiliser cette clé pour trouver une valeur @DaniyalShahbaz


4 Réponses :


1
votes
  • 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])
    

0 commentaires

0
votes

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])


0 commentaires

0
votes

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)


0 commentaires