Closed. This question needs to be more focused。它当前不接受答案。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
4年前关闭。
Improve this question
我正在Python中寻找一个简短而又酷的rot13函数;-)
我已经写了这个函数:
谁能做得更好?例如,支持大写字符。
想改善这个问题吗?更新问题,使其仅关注editing this post的一个问题。
4年前关闭。
Improve this question
我正在Python中寻找一个简短而又酷的rot13函数;-)
我已经写了这个函数:
def rot13(s):
chars = "abcdefghijklmnopqrstuvwxyz"
trans = chars[13:]+chars[:13]
rot_char = lambda c: trans[chars.find(c)] if chars.find(c)>-1 else c
return ''.join( rot_char(c) for c in s )
谁能做得更好?例如,支持大写字符。
最佳答案
这是一个maketrans/translate解决方案
import string
rot13 = string.maketrans(
"ABCDEFGHIJKLMabcdefghijklmNOPQRSTUVWXYZnopqrstuvwxyz",
"NOPQRSTUVWXYZnopqrstuvwxyzABCDEFGHIJKLMabcdefghijklm")
string.translate("Hello World!", rot13)
# 'Uryyb Jbeyq!'
10-06 05:23