【问题标题】:Unknown format code 'b' for object of type 'str'“str”类型对象的未知格式代码“b”
【发布时间】:2026-01-20 20:20:06
【问题描述】:
def reverseBits(self, n):
    binary = '{0:08b}'.format(n)
    rev = reversed(binary)
    print(rev)
    return rev

我得到错误:

ValueError:“str”类型对象的未知格式代码“b”

它说这个错误发生在第 20 行,即使没有第 20 行。

我在这里做错了什么?

【问题讨论】:

  • 问题是,您正在尝试将string 格式化为二进制,而这种方式是不可能的。这种方法只能用于将integers 格式化为二进制。见thisthis
  • 请发布您的完整代码
  • 如果你想让我们调试这个,我们需要看到整个异常回溯,而不仅仅是第一行的一部分,我们需要看到一个minimal reproducible example,而不仅仅是一段代码不包含可能出错的部分。

标签: python format


【解决方案1】:

我相信您正在尝试将字符串转换为二进制。首先,它必须转换为 Int。我的意思是,假设您正在尝试获取数字16 的反向位。在 Base 2 中,16 是 10000 和 Reverse 是 00001。您传递给.format 的参数必须 是int 类型。 不要做(...).format("16"),而是做(...).format(16)

【讨论】: