Python return 根据字典中的值格式化字符串
Python return formated string according to a value in dictionary
在 Python 中,我有一个脚本,它从外部源接收具有 1 个或多个变量名称的输入,然后它在 PLC 上查找当前值并将它们 return 发送到客户。
在脚本中,我定义了所有可能的变量以及显示给客户端所需的格式和单位。
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] )
如何动态地(根据字典)return 中的plc_value 要求的格式?
在示例中,如何为 "temp1" 获取“23.4 C”而不是“23.39999 C”或为 "press1" 获取“45.21 bar”而不是“42.21248 bar”?
好吧,将你的价值应用到什么 vars_format
returns:
return "%s %s" % (vars_format[given_variable][0] % plc_value, vars_format[given_variable][1])
但这太丑陋了。为什么不将所有内容都定义为可以基于 given_variable
:
交换的漂亮源字符串
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
或者更好的是,使用 str.format()
以获得更大的灵活性和更现代的字符串替换选项。
在 Python 中,我有一个脚本,它从外部源接收具有 1 个或多个变量名称的输入,然后它在 PLC 上查找当前值并将它们 return 发送到客户。
在脚本中,我定义了所有可能的变量以及显示给客户端所需的格式和单位。
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] )
如何动态地(根据字典)return 中的plc_value 要求的格式? 在示例中,如何为 "temp1" 获取“23.4 C”而不是“23.39999 C”或为 "press1" 获取“45.21 bar”而不是“42.21248 bar”?
好吧,将你的价值应用到什么 vars_format
returns:
return "%s %s" % (vars_format[given_variable][0] % plc_value, vars_format[given_variable][1])
但这太丑陋了。为什么不将所有内容都定义为可以基于 given_variable
:
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
或者更好的是,使用 str.format()
以获得更大的灵活性和更现代的字符串替换选项。