Python 如何使用铁路密码正确打印
我有一些代码,如果你不知道它是什么的话,可以使用一种叫做铁路密码的东西。无论何时输入:Encrypt 2,这都是一个测试。我想让它进入:hsi etTi sats 然而,我的代码使它以相反的方式打印:Ti sats.hsi et 你知道我怎么修吗 我的代码:Python 如何使用铁路密码正确打印,python,function,printing,Python,Function,Printing,我有一些代码,如果你不知道它是什么的话,可以使用一种叫做铁路密码的东西。无论何时输入:Encrypt 2,这都是一个测试。我想让它进入:hsi etTi sats 然而,我的代码使它以相反的方式打印:Ti sats.hsi et 你知道我怎么修吗 我的代码: 分配时,您应该在轨道上来回移动,但您只是朝一个方向移动,然后使用i%numRails返回到起点 没有必要为rails使用字典。只需使用一个按铁路编号索引的列表 def Encrypt(numRails, plainText): ra
分配时,您应该在轨道上来回移动,但您只是朝一个方向移动,然后使用i%numRails返回到起点 没有必要为rails使用字典。只需使用一个按铁路编号索引的列表
def Encrypt(numRails, plainText):
rails = [""] * numRails
rail = 0
direction = 1
for c in plainText:
rails[rail] += c
rail += direction
# check if we need to change directions
if direction == 1 and rail >= numRails:
direction = -1
rail = numRails - 2
elif direction == -1 and rail < 0:
direction = 1
rail = 1
cipherText = "".join(rails)
print (cipherText)
return cipherText
这将得到与页面相同的结果。您所说的是围栏密码?这是有效代码吗?numRails甚至在指定任何值之前就已使用。所以我的问题是,告诉我们去谷歌,这不会帮你得到答案。。。根据维基百科,你应该在铁轨上来回走动。如果你只使用i%numRails,你只会朝一个方向走。为什么要使用字典而不是按铁路索引的列表?
def Encrypt(numRails, plainText):
rails = [""] * numRails
rail = 0
direction = 1
for c in plainText:
rails[rail] += c
rail += direction
# check if we need to change directions
if direction == 1 and rail >= numRails:
direction = -1
rail = numRails - 2
elif direction == -1 and rail < 0:
direction = 1
rail = 1
cipherText = "".join(rails)
print (cipherText)
return cipherText