【问题标题】:how to separate values with spaces in for loop如何在for循环中用空格分隔值
【发布时间】:2020-06-17 17:31:12
【问题描述】:

所以我有这个程序,它给出了 ascii 值的二进制值加上用户输入字符串的 1。

text = input()
bitString = ''
for ch in text:
    new = ord(ch) + 1

    decimal = new
    while decimal > 0:
        remainder = decimal % 2
        decimal = decimal // 2
        bitString = str(remainder) + bitString

print(bitString)

如果用户输入“abcde”,输出将是

11001101100101110010011000111100010

如何让二进制值用空格分隔,输出将在哪里

1100010 1100011 1100100 1100101 1100110

?

【问题讨论】:

  • 好的,我试过了,但似乎没有什么不同?我仍然得到没有空格的输出

标签: python python-3.x loops for-loop spaces


【解决方案1】:
input = 'abcde'
bitString = ''
for i in list(input):
    bitString =  bitString + bin(ord(i)+1)[2:] + ' '
print(bitString)

我希望你想要这样。

【讨论】:

    【解决方案2】:

    解决办法如下:

    text = input()
    bitString = ''
    for ch in text:
        new = ord(ch) + 1
    
        decimal = new
        while decimal > 0:
            remainder = decimal % 2
            decimal = decimal // 2
            bitString = str(remainder) + bitString
    splitStr = [bitString[i:i+7] for i in range(0, len(bitString), 7)]
    print(" ".join(splitStr[::-1]))
    

    结果:

    1100010 1100011 1100100 1100101 1100110
    

    text = input()
    bitString = ''
    for ch in text:
        new = ord(ch) + 1
        decimal = new
        while decimal > 0:
            remainder = decimal % 2
            decimal = decimal // 2
            bitString = str(remainder) + bitString
        bitString = " " + bitString
    
    print(" ".join(bitString.split()[::-1]))
    

    结果:

    1100010 1100011 1100100 1100101 1100110
    

    【讨论】:

    • @zeurosis 试试上面的解决方案
    • 7的意义是什么?
    • 将字符串分割成 len(7) 的部分
    【解决方案3】:

    试试这个:

    revBitString = bitString[::-1]
    print(' '.join([revBitString[i:i+7][::-1] for i in range(0,len(revBitString),7)]))
    

    【讨论】:

      【解决方案4】:

      在您的代码中进行非常细微的更改以添加空间:

      text = input()
      bitString = ''
      for ch in text:
          new = ord(ch) + 1
      
          decimal = new
          while decimal > 0:
              remainder = decimal % 2
              decimal = decimal // 2
              bitString = str(remainder) + bitString
      
          bitString = " " + bitString
      
      print(bitString)
      

      输出:

      1100010 1100011 1100100 1100101 1100110
      

      【讨论】:

        【解决方案5】:

        尝试像这样在末尾使用空格

            remainder = decimal % 2
            decimal = decimal // 2
            bitString = str(remainder) + bitString + " "
        

        这应该可以解决

        【讨论】:

        • 我试过了,但仍然得到没有空格的输出......不知道为什么它不工作
        猜你喜欢
        • 2012-04-19
        • 2013-08-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-10-26
        • 1970-01-01
        相关资源
        最近更新 更多