擅长:python、mysql、java
<p>看来你在做塞萨尔密码加密,所以你可以试试这样的方法:</p>
<pre><code>strs = 'abcdefghijklmnopqrstuvwxyz' #use a string like this, instead of ord()
def shifttext(shift):
inp = raw_input('Input text here: ')
data = []
for i in inp: #iterate over the text not some list
if i.strip() and i in strs: # if the char is not a space ""
data.append(strs[(strs.index(i) + shift) % 26])
else:
data.append(i) #if space the simply append it to data
output = ''.join(data)
return output
</code></pre>
<p><strong>输出:</strong></p>
<pre><code>In [2]: shifttext(3)
Input text here: how are you?
Out[2]: 'krz duh brx?'
In [3]: shifttext(3)
Input text here: Fine.
Out[3]: 'Flqh.'
</code></pre>
<p><code>strs[(strs.index(i) + shift) % 26]</code>:上面的行表示在<code>strs</code>中找到字符<code>i</code>的索引,然后向其添加移位值。现在,在最终值(index+shift)上应用%26来获取移位索引。当传递到<code>strs[new_index]</code>时,这个移位索引产生所需的移位字符。</p>