字符串中的python变量

字符串中的python变量,python,string,variables,formatting,Python,String,Variables,Formatting,我试图从一个变量中指定一个标准的二进制格式长度,但由于某些原因,它永远不会起作用。我是在做格式错误还是包含变量 comp.write("{0:%ib}".format(I) % num_bits) ValueError:转换规范无效 你做插值的方法不对。您需要先解析%i,然后再将其传递到format。这将有助于: comp.write(("{0:%ib}" % num_bits).format(I)) 但是非常可怕,你可能想把它分成两部分: fmt = "{0:%ib}" % num_bit

我试图从一个变量中指定一个标准的二进制格式长度,但由于某些原因,它永远不会起作用。我是在做格式错误还是包含变量

comp.write("{0:%ib}".format(I) % num_bits)
ValueError:转换规范无效


你做插值的方法不对。您需要先解析%i,然后再将其传递到format。这将有助于:

comp.write(("{0:%ib}" % num_bits).format(I))
但是非常可怕,你可能想把它分成两部分:

fmt = "{0:%ib}" % num_bits
comp.write(fmt.format(I))

你做插值的方法不对。您需要先解析%i,然后再将其传递到format。这将有助于:

comp.write(("{0:%ib}" % num_bits).format(I))
但是非常可怕,你可能想把它分成两部分:

fmt = "{0:%ib}" % num_bits
comp.write(fmt.format(I))

首先,顺序不对:

("{0:%ib}" % num_bits).format(I)
第二,这不是做这件事的方法!混合格式运算符的类型意味着您不知道它可以一起完成。你想要:

"{:{}b}".format(I, num_bits)
如果你真的想分两步来做:

"{{:{}b}}".format(num_bits).format(I)

{{和}}被转义,因此在第一个.format之后被转换为单大括号。

首先,它的顺序错误:

("{0:%ib}" % num_bits).format(I)
第二,这不是做这件事的方法!混合格式运算符的类型意味着您不知道它可以一起完成。你想要:

"{:{}b}".format(I, num_bits)
如果你真的想分两步来做:

"{{:{}b}}".format(num_bits).format(I)

{{和}}是转义的,因此在第一个.format之后转换为单大括号。

python中有操作顺序吗?你是说运算符优先吗?当然,但这并不重要。按照您的方式,%对format调用的结果进行操作,而不是传递给它。python中有操作顺序吗?您是指运算符优先级吗?当然,但这并不重要。按照您的方式,%对format调用的结果进行操作,而不是传递给它。{:0{}b}。formatI,num_bits是最佳答案。我忘了也包括前导零。{:0{}b}。formatI,num_位是最好的答案。我忘了也包括前导零。