Python-二进制文本替换程序
所以我正在做一些事情,我需要用空格替换子字符串,并用空格得到子字符串的每个不同组合,我想用二进制作为比较。 例如 到目前为止,我使用的是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”: 计数器=计数器+
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')