Python-二进制文本替换程序

Python-二进制文本替换程序,python,string,Python,String,所以我正在做一些事情,我需要用空格替换子字符串,并用空格得到子字符串的每个不同组合,我想用二进制作为比较。 例如 到目前为止,我使用的是python,但它的输出只是一个空数组。 有人能帮忙吗?:) string=“abcde” binary5=[“0”] 最终=[] 对于范围(0,32)内的计数: 计数器=0 计数=箱(计数) count=str(count) count=count.lstrip('-0b') 对于范围内的i(len(count)): 如果计数[i]=“1”: 计数器=计数器+

所以我正在做一些事情,我需要用空格替换子字符串,并用空格得到子字符串的每个不同组合,我想用二进制作为比较。 例如

到目前为止,我使用的是python,但它的输出只是一个空数组。 有人能帮忙吗?:)

string=“abcde”
binary5=[“0”]
最终=[]
对于范围(0,32)内的计数:
计数器=0
计数=箱(计数)
count=str(count)
count=count.lstrip('-0b')
对于范围内的i(len(count)):
如果计数[i]=“1”:
计数器=计数器+1

如果计数器存在方法学问题:您明确地丢弃了诊断信息。因此,当您遇到问题时,您不知道自己做错了什么:您忽略了错误消息

try except
块与算法无关。摆脱它,开始调试代码。第一个错误是

            string2.pop[x]

类型
字符串
没有
pop
方法。接下来,保持
split
ting没有空格或标点的字符串;我不确定您认为这是在做什么。

我不知道您的代码在做什么。太复杂了。这是一个直接替代品

import string
from itertools import product

def translate_tuple(tup):
    ''' Takes a tuple of any length containing 0s or 1s.
        Returns a new tuple with the correct letters. '''
    return tuple(l if tup[i] == 0 else '_' for i, l in enumerate(string.ascii_letters[:len(tup)]))

def get_pairs(length):
    ''' Get all pairs of binary and translated text. '''
    for binary_tup in product((0, 1,), repeat=length):
        yield ' '.join(map(str, binary_tup)), ' '.join(translate_tuple(binary_tup))

for b, t in get_pairs(3):
    print(f'{b} = {t}')
其中打印:

0 0 0 = a b c
0 0 1 = a b _
0 1 0 = a _ c
0 1 1 = a _ _
1 0 0 = _ b c
1 0 1 = _ b _
1 1 0 = _ _ c
1 1 1 = _ _ _
通过为
get\u pairs()


解释 最重要的一位是
translate\u tuple()
,但您可以使用
itertools.product
获取所有输入的元组

translate\u tuple(tup)
需要任意长度的二进制tuple,例如:

(0, 0, 0)
(0, 1, 0)
(1, 1, 1, 1)
(0, 1, 0, 1, 0)
并以您描述的格式返回一个新元组:

(0, 0, 0)          => ('a', 'b', 'c')
(0, 1, 0)          => ('a', '_', 'c')
(1, 1, 1, 1)       => ('_', '_', '_', '_')
(0, 1, 0, 1, 0)    => ('a', '_', 'c', '_', 'e')
下一个函数
get_pairs()
只生成给定长度的所有二进制元组,然后生成二进制元组的字符串和由空格连接的结果字符串


然后可以打印出字符串。生成原始元组,并在打印之前立即创建字符串可能会更好,但我主要希望将其保留在该函数中。

我不明白您的代码应该做什么。我理解上面的例子,但我不知道代码与此有什么关系。你对整个替换感兴趣吗?包括两个空行和一个最终的
打印
,我有8行。
In [36]: for i in range(10):
    ...:     b, t = next(g)
    ...:     print(f'{b} = {t}')
    ...:
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 = a b c d e f g h i j k l m n o p q r s t
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 = a b c d e f g h i j k l m n o p q r s _
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 = a b c d e f g h i j k l m n o p q r _ t
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 = a b c d e f g h i j k l m n o p q r _ _
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 = a b c d e f g h i j k l m n o p q _ s t
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 = a b c d e f g h i j k l m n o p q _ s _
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 = a b c d e f g h i j k l m n o p q _ _ t
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 = a b c d e f g h i j k l m n o p q _ _ _
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 = a b c d e f g h i j k l m n o p _ r s t
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 = a b c d e f g h i j k l m n o p _ r s _
(0, 0, 0)
(0, 1, 0)
(1, 1, 1, 1)
(0, 1, 0, 1, 0)
(0, 0, 0)          => ('a', 'b', 'c')
(0, 1, 0)          => ('a', '_', 'c')
(1, 1, 1, 1)       => ('_', '_', '_', '_')
(0, 1, 0, 1, 0)    => ('a', '_', 'c', '_', 'e')