我正试图和我的一个朋友玩,我们是特工,但我们怎么能成为特工而没有绝密的消息代码来互相沟通?
# 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)
在秘密消息中转换消息后,我们得到一行文字......
fgtwi%rnxxnts1%itsy%fyp%yjfhmjw&
问题是,我们希望实现这样的结果:
fgtwi rnxxnts, itsy fyp yjfhmjw!
仅考虑字母。
仅使用间谍代码转换字母,不转换空格或特殊符号。
答案 0 :(得分:2)
一个简单的方法,使用GP89提示给你。
只需检查您当前的角色是否在信件列表中;否则只是按原样返回
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)
返回
fgtwi rnxxnts, itsy fyp yjfhmjw!
答案 1 :(得分:0)
我现在已经过时了,但您可以使用str.isalpha()
:
s = 'Impending doom approaches!'
n = 6
result = ''
for c in s:
result += chr(ord(c) + n) if c.isalpha() else c
print(result)
>>> Osvktjotm juus gvvxuginky!