как разделить значения с пробелами в цикле for - PullRequest
2 голосов
/ 05 марта 2020

Итак, у меня есть эта программа, которая дает двоичные значения значений 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

?

Ответы [ 5 ]

3 голосов
/ 05 марта 2020
input = 'abcde'
bitString = ''
for i in list(input):
    bitString =  bitString + bin(ord(i)+1)[2:] + ' '
print(bitString)

Я надеюсь, что вы хотите получить этот путь.

3 голосов
/ 05 марта 2020

Очень небольшое изменение в вашем коде для добавления пробела:

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
2 голосов
/ 05 марта 2020

Вот решение:

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
1 голос
/ 05 марта 2020

Попробуйте это:

revBitString = bitString[::-1]
print(' '.join([revBitString[i:i+7][::-1] for i in range(0,len(revBitString),7)]))
0 голосов
/ 05 марта 2020

Попробуйте использовать пробел в конце, как это

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

Это должно решить

...