【问题标题】:Python 3 String Formatting IssuesPython 3 字符串格式问题
【发布时间】:2020-09-12 05:13:16
【问题描述】:

我遇到了无法格式化要打印的字符串的问题。 该函数应该将二进制转换为文本,效果很好,但打印输出的格式一直是右边而不是左边。

我已经尝试通过查找如何格式化字符串来解决这个问题,但我没有运气。我希望有人可以为我解决这个问题。

代码如下:

        elif Converter_Choice2 == str(3):
            def Bin_to_Txt():
                print("\nYour Message in Binary:")
                bin_input = input("")
                binary_int = int(bin_input, 2)
                byte_number = binary_int.bit_length() + 7 // 8

                binary_array = binary_int.to_bytes(byte_number, "big")
                ascii_text = binary_array.decode()

                clear()
                print("\nYour Message in Text:")
                print(ascii_text)
                
            Bin_to_Txt()

我尝试了不同的方式来格式化它,但我对 Python 3 仍然很陌生。我尝试将“ascii_text”放入另一个字符串来格式化它,所以我可以打印那个字符串但它不起作用。

        ascii_text_formatted = ("{:<15}".format(ascii_text))
        print(ascii_text_formatted)

对此的一些建议会很棒。

这是一个可以使用的快速二进制代码:0100100001100101011011000110110001101111

解码后的版本应该说“你好”。

【问题讨论】:

    标签: python-3.x string formatting


    【解决方案1】:

    我设法找到了答案。如果其他人有此问题或类似问题,请尝试以下操作:

    问题是变量“binary_array”在本例“Hello”的打印答案之前打印出不可见的数字。因此,它会一直打印“Hello”作为它前面的不可见数字。

    为了解决这个问题,我在“binary_array”字符串的末尾添加了 [34:] 以从打印中删除那些不可见的数字。通过添加 [34:] 意味着前 34 个字符/数字即使不可见也不会被打印。因此,这可以是您需要的任何数字。例如,如果我将 34 更改为 35,它将从“Hello”中删除“H”并打印“ello”。

    以下是添加 [34:] 前后的功能块截图和打印响应。

    https://imgur.com/a/W25G1FZ

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-06
      • 2013-10-10
      • 1970-01-01
      • 2014-10-23
      • 2023-01-12
      相关资源
      最近更新 更多