Python根据字典中的值返回格式化字符串

Python根据字典中的值返回格式化字符串,python,string-formatting,Python,String Formatting,在Python中,我有一个脚本,它接收来自外部源的输入,输入的名称为1个或多个变量,然后在PLC上查找当前值并将其返回给客户端 在脚本中,我定义了所有可能的变量以及显示给客户机所需的格式和单位 given_variable = "temp1" #Client needs current value of temp1 vars_format = { "temp1":["%0.1f","C"], "press1":["%0.2f","bar"], "temp2":["%d"

在Python中,我有一个脚本,它接收来自外部源的输入,输入的名称为1个或多个变量,然后在PLC上查找当前值并将其返回给客户端

在脚本中,我定义了所有可能的变量以及显示给客户机所需的格式和单位

given_variable = "temp1"  #Client needs current value of temp1
vars_format = {
    "temp1":["%0.1f","C"],
    "press1":["%0.2f","bar"],
    "temp2":["%d","K"],
    "distance":["%0.3f","km"],
    "switch":["%d",""]
}

# Logic for finding current plc_value of given_variable
# plc_value is a string that looks like a real number
# ("3.14159"), an integer "3" or a string "Running"

return "%s %s" % ( plc_value, vars_format[ given_variable ][1] )
如何(根据字典)以所需格式动态返回plc_值?
在本例中,如何将“temp1”的“23.4 C”替换为“23.39999 C”,或将“press1”的“42.21248 bar”替换为“45.21 bar”?

那么,将您的值应用于
vars_format
返回的内容:

return "%s %s" % (vars_format[given_variable][0] % plc_value, vars_format[given_variable][1])
但那太难看了。为什么不将所有内容都定义为一个好的源字符串,您可以基于
给定的\u变量进行交换

vars_format = {
    "temp1": "%0.1f C",
    "press1":"%0.2f bar",
    "temp2": "%d K",
    "distance": "%0.3f km",
    "switch": "%d"
}

return vars_format[given_variable] % plc_value

或者更好,使用更灵活和更现代的字符串替换选项。

好吧,将您的值应用于
vars\u格式
返回的内容:

return "%s %s" % (vars_format[given_variable][0] % plc_value, vars_format[given_variable][1])
但那太难看了。为什么不将所有内容都定义为一个好的源字符串,您可以基于
给定的\u变量进行交换

vars_format = {
    "temp1": "%0.1f C",
    "press1":"%0.2f bar",
    "temp2": "%d K",
    "distance": "%0.3f km",
    "switch": "%d"
}

return vars_format[given_variable] % plc_value
或者更好,使用更灵活和更现代的字符串替换选项。

我将变量改为“漂亮的源字符串”。。谢谢我把变量改成了“好的源字符串”。。谢谢