我正在尝试用python编写一个换位密码。但是我已经到了我卡住的地步。在
我的代码:
key = "german"
length = len(key)
plaintext = "if your happy and you know it clap your hands, clap your hands"
Formatted = "".join(plaintext.split()).replace(",","")
split = split_text(formatted,length)
def split_text(formatted,length):
return [formatted[i:i + length] for i in range(0, len(formatted), length)]
def encrypt():
我用它来计算字符串的长度,然后用这个长度来确定要在程序中创建多少列。所以它会产生这样的结果:
^{pr2}$这就是我被困的地方。因为我想让程序通过组合列来创建一个字符串。因此,它将合并每个列来创建:
IHNNLRCUSFADOAHLRYPYWPAAH .....
我知道我需要某种类型的循环,但不确定如何告诉程序创建这样的字符串。在
谢谢
您可以使用字符串片段来获取字符串中的每个字母,步骤为6(长度)
然后只需遍历
^{pr2}$range(length)
中所有可能的开始索引并将它们全部链接在一起:注意,这实际上并没有使用
split_text
,而是直接使用formatted
:使用
split_text
的问题是你不能使用像zip
这样的工具,因为它们在第一个迭代器停止时停止(因此,由于最后一个组中只有一个字符,所以只能从zip(*split)
获得一个组)为了使用类似的东西,您必须重新定义zip的工作方式,允许一些迭代器完成并继续,直到所有迭代器都完成:
然后,您可以使用以下方法处理拆分的数据:
相关问题 更多 >
编程相关推荐