Преобразование поднятой позиции в бинарный - PullRequest
0 голосов
/ 16 октября 2019

Я работаю над переходом от двоичного кода o-строки к Unicode, часть этого процесса требует преобразования повышенного положения в двоичное. Кажется, я не могу это сделать. Док-тест объяснит, что нужно сделать.

Я предоставил свой код ниже, но он не близок к получению правильного ответа.

def повышеннойpos_to_binary (s): '' (str) -> str Преобразовать строку, представляющую символ Брайля в представлении с возвышением, в двоичное представление. ТОДО: Для студентов, чтобы закончить.

>>> raisedpos_to_binary('')
'00000000'
>>> raisedpos_to_binary('142536')
'11111100'
>>> raisedpos_to_binary('14253678')
'11111111'
>>> raisedpos_to_binary('123')
'11100000'
>>> raisedpos_to_binary('125')
'11001000'
'''

res = ''
lowest_value = '00000000'
for i, c in enumerate(s):
    if c == i:
        lowest_value = lowest_value.replace('0', '1')
return lowest_value

1 Ответ

0 голосов
/ 16 октября 2019

Похоже, что вы можете создать набор (преобразованный в целые числа) из отдельных цифр, а затем произвести '1' или '0', повторяясь в диапазоне 1..8, например:

def raisedpos_to_binary(digits):
    raised = {int(digit) for digit in digits}
    return ''.join('1' if n in raised else '0' for n in range(1, 9))

Тесты:

for test in ['', '142536', '14253678', '123', '125']:
    print(test, '->', raised_pos_to_binary(test))

Дает вам:

 -> 00000000
142536 -> 11111100
14253678 -> 11111111
123 -> 11100000
125 -> 11001000

Итак, в полном объеме ваш модуль должен содержать:

def raisedpos_to_binary(digits):
    """
    >>> raisedpos_to_binary('')
    '00000000'
    >>> raisedpos_to_binary('142536')
    '11111100'
    >>> raisedpos_to_binary('14253678')
    '11111111'
    >>> raisedpos_to_binary('123')
    '11100000'
    >>> raisedpos_to_binary('125')
    '11001000'
    """

    raised = {int(digit) for digit in digits}
    return ''.join('1' if n in raised else '0' for n in range(1, 9))


if __name__ == '__main__':
    import doctest
    doctest.testmod()

Затем запустите ваш скрипт, используя:

python your_script.py -v
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...