猿问

python 中的字符串格式化%s

我的应用程序有一点问题。


这是一个代码:


parameters_tuple = (case_name, x_rw[6], x_rw[0], x_rw[1], x_rw[2], x_rw[3], x_rw[6])


return """

        <testcase classname="performance_tests" name="%s" time="%s">

            <Type>%s</Type>

            <Name>%s</Name>

            <Request_Count>%s</Request_Count>

            <Failure_Count>%s</Failure_Count>

            <Min_Response_Time>%s</Min_Response_Time>

        </testcase>""" % parameters_tuple

我想除以x_rw[6]1000。


我尝试这样做:


parameters_tuple = (case_name, x_rw[6], x_rw[0], x_rw[1], x_rw[2], x_rw[3], x_rw[6])


return """

        <testcase classname="performance_tests" name="%s" time="%s">

            <Type>%s</Type>

            <Name>%s</Name>

            <Request_Count>%s</Request_Count>

            <Failure_Count>%s</Failure_Count>

            <Min_Response_Time>%s</Min_Response_Time>

        </testcase>""" % parameters_tuple[0], parameters_tuple[1]/1000, parameteres_tuple[2:]

但根本不起作用。如何使其发挥作用?


九州编程
浏览 1614回答 3
3回答

慕尼黑的夜晚无繁华

您尝试过使用 f 字符串吗?这适用于 Python >= 3.6您可以将代码替换为:f'<testcase&nbsp;classname="performance_tests"&nbsp;name="{parameters_tuple[0]}"&nbsp;time="%s">'在这里,您获取内部变量和操作的值(就像您的除法一样),并用它们替换字符串的该部分。f'<Type>"{parameters_tuple[1]/1000}"</Type>'

一只斗牛犬

parameters_tuple&nbsp;=&nbsp;(case_name,&nbsp;x_rw[6]&nbsp;/&nbsp;1000,&nbsp;x_rw[0],&nbsp;x_rw[1],&nbsp;x_rw[2],&nbsp;x_rw[3],&nbsp;x_rw[6])和字符串有帮助。多谢你们 :)

温温酱

您的代码的问题是它的解释如下(请注意(...)):return&nbsp;("""..."""&nbsp;%&nbsp;parameters_tuple[0]),&nbsp;parameters_tuple[1]/1000,&nbsp;parameters_tuple[2:]因此,您会得到“格式字符串参数不足”,因为它在需要 7 时尝试仅使用第一个参数。相反,您可以使用它(...)来创建一个包含所有要使用的参数的新元组。用于*解压“其余部分”:return&nbsp;"""..."""&nbsp;%&nbsp;(parameters_tuple[0],&nbsp;parameters_tuple[1]/1000,&nbsp;*parameters_tuple[2:])/ 1000然而,在定义时执行以下操作似乎要简单得多parameters_tuple:parameters_tuple&nbsp;=&nbsp;(case_name,&nbsp;x_rw[6]&nbsp;/&nbsp;1000,&nbsp;x_rw[0],&nbsp;x_rw[1],&nbsp;x_rw[2],&nbsp;x_rw[3],&nbsp;x_rw[6])
随时随地看视频慕课网APP

相关分类

Python
我要回答