-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

次の部分では、プログラムに各行の最初の文字を出力させ、次に 2 番目、3 番目、というように出力させます。それはこのように見えるはずです。

"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 に答える