我正在编写一个加密字符串输入的程序。我有一个随机数生成器,以及一些将随机数转换为字母的代码。我会怎样在每个说第3个字母后插入这封信?即字符串之前:abcdef,String after:abcldefk。
随机数生成器的代码如果有帮助:
Letter = random.randrange(1,26)
print chr(Letter + ord('A'))
答案 0 :(得分:4)
您可以使用str.join
,enumerate
,其起始索引等于1且模数为:
print("".join([x if i % 3 else x + random_letter for i, x in enumerate(s,1)]))
如果您只想插入随机字母,可以使用string.ascii_letters
和random.choice
:
from random import choice
from string import ascii_letters
s = "abcdef"
print("".join([x if i % 3 else x + choice(ascii_letters) for i, x in enumerate(s,1)])
abcQdefN
答案 1 :(得分:0)
我受到了Padraic的回答的启发,并希望增加一点。
import random
Letter = random.randrange(1,26)
def encrypt_string(string, n):
return ("".join([x if i % n else chr(Letter + ord('A')) for i, x in enumerate(string)]))
这是每个'nth'字母的字符串“encryption”(松散地使用它)方法。
结果(答案可能因随机而异):
print(encrypt_string("0123456789", 2)) # Every other letter
M1M3M5M7M9
print(encrypt_string("0123456789", 3)) # Every third letter
D12D45D78D
我希望这会有所帮助。