我正在尝试创建一个谐音替换密码,其中最常见的字母被多个其他符号替换,例如,如果我的明文是“ EEEEEEE”,E将被替换为几个不同的符号,在此代码中将是“%”和“-”
我现在拥有的是这个
def encryption():
plaintext = "EEEEEEE"
plaintext = plaintext.replace("E", "%" "-")
print(plaintext)
encryption()
我打算使密文看起来像这样的“%-%-%-”,其中字母E将被我选择的2个符号随机替换,但是最终发生的事情是我得到了“ %-%-%-%-%-%-%-%-“,它将用所有符号替换每个单独的E,因此提供了14个字符而不是原来的7个字符。
我也尝试过使用random模块,但是我最终有一半时间得到“ %%%%%%%%”或“ -------”,但从未在同一时间随机使用两个符号尝试。
那么我如何使我的代码能够用“%”和“-”随机替换每个单独的E?
答案 0 :(得分:2)
我认为您需要遍历字符串以实现这种随机性。
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