-4

到目前为止,这是我的代码。

def encryptMessage():
msg = "I came, I saw, I conquered"
i = 0
numChar = len(msg)
while i < numChar:
  print msg[i:i+5]
  i=i+5

它返回这个;

I cam
e, I 
saw, 
I con
quere
d

下一部分是让程序打印每行中的第一个字母,然后是第二个,然后是第三个,依此类推。那应该看起来像这样。

"IesIqd ,a u c wce aI,or m ne"

老实说,我想不出办法来做到这一点。任何帮助,将不胜感激。

4

3 回答 3

1

我想这个练习的目的是教你切片时的“步幅”(又名步)选项。

msg = 'I came, I saw, I conquered'

msg[::5]
Out[22]: 'IesIqd'

msg[1::5]
Out[23]: ' ,a u'

更多的语法解释在这里。我会把剩下的留给你。

于 2013-10-16T04:23:09.833 回答
0
>>> from itertools import izip_longest
>>> ciphermap = izip_longest(*[msg[i:i+5] for i in range(0,len(msg),5)],fillvalue="")
>>> encoded = "".join(["".join(x) for x in ciphermap])
>>> print encoded
IesIqd ,a uc wceaI,orm  ne

我认为会工作

于 2013-10-16T04:07:20.273 回答
-1
def encryptMessage():
    result = []
    msg = "I came, I saw, I conquered"
    result = "".join([msg[k::5] for k in range(5)])

你会得到输出-:

"IesIqd ,a u c wce aI,or m ne"

您无需导入任何包,只需简单操作即可。

于 2013-10-16T05:06:01.380 回答