实现一个函数crypto(),其中字母表中奇数位置i的每个字符都将使用位置i + 1处的字符进行加密,而位于偶数位置的每个字符将使用位置i-1处的字符进行加密。或者说,'a'用'b'加密,'b'加'a','c'加'd','d'加'c','e'加'f','f'加' e'等。
这应该出现:
>>>>crypto('abc')
bad
>>>>crypto('OOZ')
PPY
*** ATTEMPT
def crypto():
return [ord(c) in s]
s = 'cat'
alist = ascii_list(s)
print alist
alist[0] +=1
alist[1] +=14
我几乎是肯定的,我正在解决这个问题。
答案 0 :(得分:5)
将此问题分为两部分:
ord
功能,从而走上正轨。你可以编写一个简单的函数,它接收一个字母并返回它应加密的字母,如果它应该被改变的话。答案 1 :(得分:3)
这是你想要的:
def crypto(s):
return ''.join(chr(ord(c)+(1 if ord(c)%2 else -1)) for c in s)
说明:
c
中每个字符s
的序号(即for c in s
部分)ord('a')
和ord('A')
都是奇数(非常有用!),所以...... (1 if ord(c)%2 else -1)
部分评估为1
为奇ord(c)
和-1
为偶数ord(c)
并使用chr
获取“加密”字符''.join()