3

私は仲間の 1 人を楽しませようとしています。私たちは特別捜査官ですが、互いに通信するための極秘のメッセージ コードを持たずに特別捜査官になるにはどうすればよいでしょうか?

# txt = the secret message to convert!
# n = number of times to jump from original position of letter in ASCII code

def spy_code(txt,n):
    result = ''
    for i in txt:
        c = ord(i)+n
        if ord(i) != c:
            b = chr(c)
            result += b
    print result

spy_code('abord mission, dont atk teacher!',5)

秘密のメッセージでメッセージを変換した後、1 行のテキストを取得しています...

fgtwi%rnxxnts1%itsy%fyp%yjfhmjw&

問題は、そのような結果を達成したいということです:

fgtwi rnxxnts, itsy fyp yjfhmjw!

文字だけを考えます。

スパイ コードのみを使用して文字を変換し、スペースや特殊記号を変換しないでください。

4

2 に答える 2

2

A simple way to go, using the tip GP89 gave you.

Simply check if your current character is in the list of letter; otherwise just return it as it is

import string

vals = string.letters
def spy_code(txt,n):
    result = ''
    for i in txt:
        if i in vals:
            c = ord(i)+n
            if ord(i) != c:
                b = chr(c)
                result += b
        else:
            result += i
    print result

spy_code('abord mission, dont atk teacher!',5)

returns

fgtwi rnxxnts, itsy fyp yjfhmjw!
于 2012-11-03T16:22:37.013 に答える