python - 谐音替换密码 Python
问题描述
我正在尝试制作一个谐音替换密码,其中最常见的字母被多个其他符号替换,例如,如果我的明文是“EEEEEEE”,则 E 将被替换为几个不同的符号,在此代码中将是“ %“ 和 ”-”
我现在拥有的是这个
def encryption():
plaintext = "EEEEEEE"
plaintext = plaintext.replace("E", "%" "-")
print(plaintext)
encryption()
我打算让密文看起来像这样“%--%-%-”,其中字母 E 将被我选择的 2 个符号随机替换,但最终发生的是我得到“%-% -%-%-%-%-%-",它将每个单独的 E 替换为所有符号,因此给出 14 个字符而不是原来的 7 个字符。
我也尝试过使用 random 模块,但我最终得到“%%%%%%%”或“-------”的一半时间,但从未在同一次尝试中随机使用这两个符号。
那么我如何才能让我的代码能够用“%”和“-”随机替换每个单独的 E 呢?
解决方案
我认为您需要遍历字符串以实现这种随机性。
import random
def encryption(plaintext):
ret = ""
for i in range(len(plaintext)):
ret += ("%" if random.random() > 0.5 and (plaintext[i] in ["a", "e", "i", "o", "u"]) else "-")
return ret
推荐阅读
- python - 需要删除 JSON 对象中的数组
- security - 如何在 Xamarin.Forms 中使用内部存储
- android - 在 Android 上缩放图像会使图像呈现在 ImageView 边界之外
- javascript - 创建反应应用 + 反应惰性 + 绝对导入
- checkbox - 在 Xmarin.Forms 的 ViewCell 中切换 CheckBox
- javascript - 如何处理浏览器中的三星 S-Pen 按钮事件(Javascript)?
- javascript - EJS 文件显示日期不正确(日期落后一号)
- typescript - Unexpected union distribution
- c++ - 如何在我的函数中修复我的 fstream 文件输入以将正确的信息存储在我的结构数组中?
- windows - 我无法在 Windows 10 上使用匈牙利语布局键入“<”