Как напечатать возвращенный словарный вывод из функции внутри строки (предложения) в Python?(Обработка) - PullRequest
0 голосов
/ 22 декабря 2018

Я создаю программу, которая рассчитывает общую стоимость еды, принимая следующие входные данные: food_cost, tax_rate, tip_rate, number_eating

и печатая их внутри строки с помощью вызова функции.Я посмотрел на StackOverflow, но не смог найти вопрос, подходящий для моей ситуации (печать словаря, возвращенного функцией в строке)

У меня есть одна функция, которая принимает все входные данные и возвращает вывод словаря.Я хочу напечатать эти возвращенные значения в строке с вызовом функции, все в одной строке.Это то, что я пытался:

def calculatedCost(meal_cost,tax_rate,tip_rate,number_eating):
  tax = round(float(meal_cost * tax_rate) / 100,2)
  tip = round(float(meal_cost * tip_rate) / 100,2)
  total_cost = round(meal_cost + tax + tip,2)
  division = round(total_cost / number_eating,2)
  return {'tax': tax, 'tip': tip, 'total_cost':total_cost, 'division':division} 

print("The cost of your meal is: {total_cost}, the tax on your meal is: {tax}, the tip is equal to: {tip}, and the split total is: {division}".format(calculatedCost(62.75,5,20,2)))

, и я получаю эту ошибку: (Я использую обработку)

KeyError: total_cost
processing.app.SketchException: KeyError: total_cost
at jycessing.mode.run.SketchRunner.convertPythonSketchError(SketchRunner.java:240)
at jycessing.mode.run.SketchRunner.lambda$2(SketchRunner.java:119)
at java.lang.Thread.run(Thread.java:748)

1 Ответ

0 голосов
/ 22 декабря 2018

вам нужно распаковать dict (обратите внимание на двойную звездочку):

print("The cost of your meal is: {total_cost}, the tax on your meal is: {tax}, the tip is equal to: {tip}, and the split total is: {division}".format(**calculatedCost(62.75,5,20,2)))
...