This question already has answers here:
Why does `a == b or c or d` always evaluate to True?
                                
                                    (2个答案)
                                
                        
                        
                            Short rot13 function - Python [closed]
                                
                                    (20个答案)
                                
                        
                                上个月关闭。
            
                    
题:
您如何分辨NSA的性格外向? Va gur ryringbef,gur rkgebireg ybbxf ng gur BGURE和fubrf。

我在USENET上发现了这个笑话,但趣味盎然。也许您可以解密?根据Wikipedia的说法,经常使用ROT13(http://en.wikipedia.org/wiki/ROT13)来掩盖USENET上的笑话。

提示:对于此任务,您只应替换字符。不是空格,标点符号,数字等。测试示例:

我的代码:

def rot13(message):
    solved = ""
    for i in message:
        if i == "," or "-" or "/" or "." or "1" or "2" or "3" or "4" or "5" or "6" or "7" or "8" or "9":
            solved += i
        else:
            decipher = chr(ord(i)+13)
            solved += decipher
    return solved.upper()


我需要解决的问题
每次我尝试将字母更改为13以上的索引时,都会给我一个空格而不是一个字母。
例如,当我在函数中输入字母“ u”时,它给我一个“ _”,但我想要“ h”。如何在Python中循环浏览字母,而不只是在第26个索引处结束

最佳答案

尝试这个:

import string

letters = string.ascii_letters
letters += letters  # now you can easily go for 'z' + 26, etc.

print ''.join( [letters[letters.find(k) + 13] if k in letters else k for k in msg] )


输出:

in tHE ELEvAtors, tHE ExtrovErt LooKs At tHE OTheR Guy's sHoEs

关于python - 如何在python中循环浏览字母索引? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59638334/

10-12 17:00
查看更多