如何将含String.fromCharCode的JavaScript函数转换为原生Python代码?
将JavaScript的ROT13转换函数转为原生Python代码
原JavaScript函数实现的是ROT13加密算法,对输入字符串中的英文字母做如下处理:
- A-M(含大小写):ASCII码加13,向后位移13位
- N-Z(含大小写):ASCII码减13,向前位移13位
- 非字母字符保持不变
实现方式一:逐字符处理(与原JS逻辑完全对应)
def replac_ch(a): output = [] for char in a: if char.isalpha(): upper_char = char.upper() # 判断字符是否属于A-M区间 if upper_char <= 'M': shifted_code = ord(char) + 13 else: shifted_code = ord(char) - 13 output.append(chr(shifted_code)) else: output.append(char) return ''.join(output)
实现方式二:利用字符串转换表(更Pythonic、高效)
Python的str.translate方法可以通过转换表批量处理字符,这种方式效率更高,代码更简洁:
def replac_ch(a): # 构建ROT13字符映射表 rot13_map = str.maketrans( 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 'NOPQRSTUVWXYZABCDEFGHIJKLMnopqrstuvwxyzabcdefghijklm' ) return a.translate(rot13_map)
两种方式都能实现原JS函数的功能,示例验证:
print(replac_ch("Hello World!")) # 输出: Uryyb Jbeyq!
内容的提问来源于stack exchange,提问作者Alholi Hamed
相关产品推荐
相关产品推荐

