我正在尝试用 Python 减去字母,但我无法以正确的方式进行。
我知道如何得到这封信的 ord。
喜欢:
a = "a"
x = ord(a) # -> this will give me 97.
当我尝试从该字母中减去值时,我得到的结果与我想要的完全不同。
如果我从 b 中减去 1,我得到 97(代表 a),但现在我想要从b减去14,我想达到a,然后回到z继续减法.
a = 97
b = 98
...
z = 122
我想继续循环小写字母表,它在 97 和 122 之间。
例如,如果我从 b 中减去 14,我会得到 84,但是按照我想要的方式,我想获取 n。
b - 14 = a - 13 = z - 12 (...) and so on.
希望你能明白我的意思。
;)
有人可以帮我吗?
问候, 伊万。
请您参考如下方法:
我会只分离小写字母,然后使用切片来发挥你的优势。当您从列表的开头减去时,您将得到一个负索引,它将从列表的后面开始索引。这应该会给您预期的行为。
>>> s = 'abcdefghijklmnopqrstuvwxyz'
>>> s.find('c')
2
>>> s[s.find('c') - 6]
'w'
请注意,为确保 + 仍然有效,您需要使用 % 运算符,以防您环绕列表前进。
>>> s.find('x')
23
>>> s[(s.find('x') + 5) % 26]
'c'
>>> s[(s.find('c') - 6) % 26]
'w'
