擅长:python、mysql、java
<p>其他答案没有错,但既然您使用的是Python,那么您也可以使用它擅长的东西(而且您的代码可能也会更快):</p>
<pre><code>want_cyphered = 'Some text'
cyphered = ''.join(chr(ord(ch) + 13) for ch in want_cyphered)
print(cyphered)
decyphered = ''.join(chr(ord(ch) - 13) for ch in cyphered)
print(decyphered )
</code></pre>
<p>要分解它(假设您是Python新手):<code>''.join(list_of_parts)</code>获取字符串部分(字符或字符串)的列表,并使用开头的字符串(本例中为空字符串)将它们连接到一个字符串中</p>
<p>您可以使用生成器表达式(一种非常好的迭代iterable的方法)生成该部分列表,如<code>[ch for ch in some_str]</code>,它将获得字符串中的字符列表</p>
<p>我刚才把生成器放在方括号中,这样它就会变成一个实际的列表,但是当您只编写一个生成器作为某个函数的输入时,您可以传递生成器本身,而不需要像<code>''.join(ch for ch in some_str)</code>这样的括号,它基本上什么都不做。它把绳子拆开,然后再放回一起</p>
<p>但是您也可以将操作应用于该生成器的元素,因此您可以使用<code>chr(ord(ch) + 13)</code>填充列表,而不仅仅是<code>ch</code>,这是您希望应用的密码</p>
<p>把所有这些放在一起,你会得到:</p>
<pre><code>cyphered = ''.join(chr(ord(ch) + 13) for ch in want_cyphered)
</code></pre>