J'essaie d'imprimer une valeur de dictionnaire mais cela me donne simplement une erreur p>
4 Réponses :
Si vous utilisez une version récente de Python (3.6 ou plus récente), remplacez cette ligne avec:
sales_statement = f"{sales_record['person']} got {sales_record['num_items']} item(s) at a cost of {sales_record['price']} each for a total of {sales_record['price']*sales_record['num_items']}"
Vous devez formater votre chaîne. Cela fonctionnera pour les versions nouvelles et plus anciennes de Python:
sales_statement = "{} got {} item(s) at a cost of {} each for a total of {}".format(sales_record['person'], sales_record['num_items'], sales_record['price'], sales_record['price'] * sales_record['num_items'])
Il est essentiellement à cause des citations.
sales_statement = str(sales_record['person']) + " got " + str(sales_record['num_items']) + " item(s) at a cost of " + str(sales_record['price']) + " each for a total of " + str(sales_record['price']*sales_record['num_items'])
Vous pouvez utiliser des guillemets doubles pour la chaîne complète et les guillemets simples pour les clés du dictionnaire afin qu'il n'y ait aucune confusion entre eux. En python 3.6 ou plus tard. Vous pouvez utiliser des chaînes F et enfermer les variables dans des accolades bouclées, en précisant la chaîne avec la lettre f. Auparavant, vous auriez utilisé la méthode de la chaîne de format.
sales_record = {
'price': 3.24,
'num_items': 4,
'person': 'xyz'
}
sales_statement = f"{sales_record['person']} got {sales_record['num_items']} item(s) " \
+ f"at a cost of {sales_record['price']} each for a total of " \
+ f"{sales_record['price'] * sales_record['num_items']}"
print(sales_statement)