如何在Python中的每个字母的第n个字母中插入数字?

时间:2015-02-19 22:00:29

标签: python string encryption

我正在编写一个加密字符串输入的程序。我有一个随机数生成器,以及一些将随机数转换为字母的代码。我会怎样在每个说第3个字母后插入这封信?即字符串之前:abcdef,String after:abcldefk。

随机数生成器的代码如果有帮助:

Letter = random.randrange(1,26) 

print chr(Letter + ord('A'))

2 个答案:

答案 0 :(得分:4)

您可以使用str.joinenumerate,其起始索引等于1且模数为:

print("".join([x if i % 3 else x + random_letter for i, x in enumerate(s,1)]))

如果您只想插入随机字母,可以使用string.ascii_lettersrandom.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

我希望这会有所帮助。